python:memory_profiler会影响运行时间吗?

python: will memory_profiler affect runtime?

我正在评估分析我的 python 程序的工具。这里有趣的工具之一是 memory_profiler。在继续之前,只想知道memory_profiler是否影响运行时。我问这个问题的原因是 memory_profiler 会输出大量的内存使用情况。所以我怀疑它可能会影响运行时间。

谢谢

德里克

这取决于您的使用方式 memory_profiler。这可以以两种不同的方式使用:

  • 逐行获取内存使用情况(运行 和 python -m memory_profiler my_script.py)。这需要为在分析函数中执行的每一行获取内存信息(来自 OS)。这如何影响 运行-time 取决于函数中的行数:如果它有很多执行时间很快的行,它可能会带来很大的开销。另一方面,如果要分析的函数只有几行,并且每行都有大量的计算时间,那么开销可以忽略不计。

  • 获取内存作为时间的函数(运行 与 mprof run my_script.py 并绘制 mprof plot)。在这种情况下,收集内存使用情况的函数与 运行 脚本所在的进程不同,因此开销很小(除非您使用所有 CPU)。