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

时间:2018-08-13 18:47:54

标签: python performance memory process-monitoring

有没有一种方法可以测量函数在Python中使用的内存? 内存使用量的峰值,还是像内存与执行时间一样?

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

问题在于我什至不知道我要尝试做的事情是否有名称,如果确实有名字,该用什么合适的术语呢?

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

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

1 个答案:

答案 0 :(得分:1)

是的,它确实存在! 您可以使用内存事件探查器,更多信息here.

例如:

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

您可以通过以下方式启动脚本:

python -m memory_profiler main.py

要获取一段时间内的内存占用量,可以使用同一软件包中的mprof:

mprof run main.py
mprof plot

您将获得(例如) enter image description here