我如何计算出操作需要多少内存?例如:
memory_start = memory()
reader = csv.reader(file)
memory_end = memory()
memory_of_reader = math.abs(memory_end - memory_start)
答案 0 :(得分:2)
如果要获取对象的大小,可以使用sys.getsizeof
返回以字节为单位的对象大小。
sys.getsizeof(object [,default])
以字节为单位返回对象的大小。对象可以是任何类型的对象。所有内置对象都将返回正确的结果,但这不一定适用于第三方扩展,因为它是特定于实现的。
如果给定,如果对象没有提供检索大小的方法,则将返回default。否则将引发
TypeError
。
getsizeof()
调用对象的__sizeof__
方法,如果对象由垃圾收集器管理,则会增加额外的垃圾收集器开销。
示例:
>>> import sys
>>> a=2
>>> sys.getsizeof(a)
24
>>> a='this is a test'
>>> sys.getsizeof(a)
51
对于更高级的任务,您可以使用memory_profiler作为监视python程序内存使用情况的模块