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)。
我正在评估分析我的 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)。