如何衡量函数的内存性能?

How can I measure Memory Performance of a Function?

有没有办法测量函数在 Python 中使用的内存? 内存使用的峰值,或者类似内存与执行时间的对比?

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

问题是我什至不知道我想做的事情是否有名称,如果它有名称,适合它的术语是什么。

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

(我正在尝试对一些例程进行性能测试,我想象这可能是装饰器,但我只需要在执行期间测量、内存、时间和变量的可能状态的方法,但不像在调试如“当某个变量保留其值时发生了多少次迭代”以及此类问题,并尝试提取函数范围内变量的历史记录以解决问题)

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

举个例子:

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

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

python -m memory_profiler main.py

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

mprof run main.py
mprof plot

你会得到(作为例子)