在进行程序设计时经常需要对程序各部分内存与时间开销进行分析,以便找出瓶颈提高效率。本文总结了常用的几个性能分析工具,包括内存分析工具memory_profiler ,运算时间分析工具line_profile等。
首先进行安装
pip install -U memory_profiler随后在程序中导入并利用修饰器来修饰需要进行分析的函数即可:
from memory_profiler import profile @profile def my_func(): a = [1] * (10 ** 6) b = [2] * (2 * 10 ** 7) del b return a if __name__ == '__main__': my_func()更多详细用法请参看Link
首先进行安装
pip install line_profiler随后在程序中导入并利用修饰器来修饰需要进行分析的函数即可:
from line_profiler import LineProfiler # for runtime def out_func(p1,p2,p3): # balabala inner_func(p3) def inner_func(p) # bala foo() lp = LineProfiler() # 实例化分析器 lp.add_function(inner_func) # 内部调用函数添加 lp_wrapper = lp(out_func) # 添加外部总调用的主函数 lp_wrapper(p1, p2, p3) # 添加主函数输入的参数 lp.print_stats() # 最后就能输出主函数的分析,以及内部函数的逐行时间分析结果啦。更多细节可以参考Lik1,Link2
1, 2
timeit,2, profile, cProfile, hotshot, objgraph,2
pic from pexels.com,tmp