用于分析 Python 代码的峰值内存使用情况的模块
A module to profile peak memory usage of Python code
目前,我尝试使用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
然而,它并没有成功执行。 ended=True 时卡住,发送 memory_usage() 的值,结束到 get_memory 的函数。它也没有显示任何错误。只是等待了很长时间,然后我强制停止执行。有人知道更好的方法或解决方案吗?
我主要用Heapy因为真的好用
只需在要测试内存使用情况的地方键入以下代码。
from guppy import hpy
hp = hpy()
print hp.heap()
使用 memory_usage
从代码块中获取峰值/最大内存的一种简单方法是首先将该代码放入一个函数中,然后将该函数传递给 - 无需 () 调用 - memory_usage()
作为 proc
参数:
from memory_profiler import memory_usage
def myfunc():
# code
return
mem = max(memory_usage(proc=myfunc))
print("Maximum memory used: {} MiB".format(mem))
其他参数允许您收集时间戳、return 值、将参数传递给 myfunc
等。docstring 似乎是有关此文档的唯一完整来源:https://github.com/fabianp/memory_profiler/blob/master/memory_profiler.py
目前,我尝试使用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
然而,它并没有成功执行。 ended=True 时卡住,发送 memory_usage() 的值,结束到 get_memory 的函数。它也没有显示任何错误。只是等待了很长时间,然后我强制停止执行。有人知道更好的方法或解决方案吗?
我主要用Heapy因为真的好用
只需在要测试内存使用情况的地方键入以下代码。
from guppy import hpy
hp = hpy()
print hp.heap()
使用 memory_usage
从代码块中获取峰值/最大内存的一种简单方法是首先将该代码放入一个函数中,然后将该函数传递给 - 无需 () 调用 - memory_usage()
作为 proc
参数:
from memory_profiler import memory_usage
def myfunc():
# code
return
mem = max(memory_usage(proc=myfunc))
print("Maximum memory used: {} MiB".format(mem))
其他参数允许您收集时间戳、return 值、将参数传递给 myfunc
等。docstring 似乎是有关此文档的唯一完整来源:https://github.com/fabianp/memory_profiler/blob/master/memory_profiler.py