有没有一种方法可以测量函数在Python中使用的内存? 内存使用量的峰值,还是像内存与执行时间一样?
我可以插入一些字节码,并检查堆栈中每一定数量的步骤并获取时间戳,但这是我想到的解决方案,我敢肯定,有一种方法可以找出标准模块或其他东西。
问题在于我什至不知道我要尝试做的事情是否有名称,如果确实有名字,该用什么合适的术语呢?
对我有很大帮助的主要问题是内存监视。 任何想法?
(我正在尝试对某些例程进行性能测试,我想象这可能是装饰器,但是我只需要在执行过程中测量,测量内存,时间以及变量的可能状态的方法,而不是像在调试中那样在“当某个变量保留其值时发生了多少次迭代”以及此类问题,并尝试提取函数范围内的变量历史以解决这些问题)
答案 0 :(得分:1)
是的,它确实存在! 您可以使用内存事件探查器,更多信息here.
例如:
@profile
def yourFunction():
alpha = sqrt(2)
您可以通过以下方式启动脚本:
python -m memory_profiler main.py
要获取一段时间内的内存占用量,可以使用同一软件包中的mprof:
mprof run main.py
mprof plot