目前,我尝试使用memory_profiler模块获取已用内存,如下所示:
from memory_profiler import memory_usage
memories=[]
def get_memory(mem,ended):
if ended:
highest_mem=max(mem)
print highest_mem
else:
memories.append(mem)
def f1():
#do something
ended=False
get_memory(memory_usage(),ended)
return #something
def f2():
#do something
ended=False
get_memory(memory_usage(),ended)
return #something
#main
f1()
f2()
ended=True
get_memory(memory_usage(),ended) #code end
>>>#output
# output
# highest memory
但是,它没有成功执行。当end=True时,它卡住了,并发送了memory_usage()的值并结束于get_memory函数。它也没有显示任何错误,只是等待了很长时间,然后我强制停止执行。有谁知道更好的方法或解决办法?在
使用
memory_usage
从代码块中获取峰值/最大内存的一种简单方法是,首先将该代码放入一个函数中,然后将该函数(无()调用)传递给memory_usage()
作为proc
参数:其他参数允许您收集时间戳、返回值、将参数传递给
myfunc
等。docstring似乎是有关此的文档的唯一完整来源:https://github.com/fabianp/memory_profiler/blob/master/memory_profiler.py我主要使用Heapy,因为它非常容易使用。在
只需在您要测试内存使用情况的地方键入以下代码。在
相关问题 更多 >
编程相关推荐