1

有没有办法测量函数在 Python 中使用的内存?内存使用的峰值,或者像内存与执行时间一样?

我可以插入一些字节码,并检查堆栈的每个一定数量的步骤并获取时间戳,但这是我想到的解决方案,我确信有一种方法可以通过标准模块或其他东西找到。

问题是我什至不知道我正在尝试做的事情是否有名字,如果它确实有什么合适的术语。

对我有很大帮助的主要问题是内存监控。任何想法?

(我正在尝试对一些例程进行性能测试,我认为这可能与装饰器有关,但我只需要在执行过程中测量、内存、时间和可能的变量状态的方法,但不像在调试中那样当某个变量保留它的值时发生了许多迭代”和此类问题,并尝试提取函数范围内变量的历史以处理它们)

4

1 回答 1

4

是的,它确实存在!您可以使用内存分析器,更多信息在这里。

举个例子:

@profile
def yourFunction():
    alpha = sqrt(2)

您使用以下命令启动脚本:

python -m memory_profiler main.py

要随着时间的推移获取内存占用,您可以使用同一包中的 mprof:

mprof run main.py
mprof plot

你会得到(例如) 在此处输入图像描述

于 2018-08-13T20:00:43.183 回答