python how to get iobytes allocated memory length?

后端 未结 3 1885
遇见更好的自我
遇见更好的自我 2020-12-29 04:30

This is the code i am using to test the memory allocation

import pycurl
import io


url = \"http://www.stackoverflow.com\"
buf = io.BytesIO()


print(len(bu         


        
3条回答
  •  盖世英雄少女心
    2020-12-29 04:59

    You can also use tracemalloc to get indirect information about the size of objects, by wrapping memory events in tracemalloc.get_traced_memory()

    Do note that active threads (if any) and side effects of your program will affect the output, but it may also be more representative of the real memory cost if many samples are taken, as shown below.

    >>> import tracemalloc
    >>> from io import BytesIO
    >>> tracemalloc.start()
    >>>
    >>> memory_traces = []
    >>>
    >>> with BytesIO() as bytes_fh:
    ...     # returns (current memory usage, peak memory usage)
            # ..but only since calling .start()
    ...     memory_traces.append(tracemalloc.get_traced_memory())
    ...     bytes_fh.write(b'a' * (1024**2))  # create 1MB of 'a'
    ...     memory_traces.append(tracemalloc.get_traced_memory())
    ...
    1048576
    >>> print("used_memory = {}b".format(memory_traces[1][0] - memory_traces[0][0]))
    used_memory = 1048870b
    >>> 1048870 - 1024**2  # show small overhead
    294  
    

提交回复
热议问题