python程序性能分析

Posted willer_W

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python程序性能分析相关的知识,希望对你有一定的参考价值。

python程序性能分析

cProfile

https://docs.python.org/3/library/profile.html
https://www.cnblogs.com/kaituorensheng/p/4453953.html

python -m cProfile [-o output_file] [-s sort_order] (-m module | myscript.py)
  1. -o 将结果输出到文件而不是stdout
  2. -s 排序状态,选择那些参数排序,常用\'tottime\'
  3. -m 作为一个模块而不是脚本, python3.7的cProfile中有,python3.8的Profile有

cProfile的结果很长,可以考虑使用line_profile

line_profiler

逐行的python程序性能分析,https://github.com/rkern/line_profiler
安装git clone https://github.com/rkern/line_profiler.gitpip install line_profiler

kernprof -l -v script_to_profile.py

在script_to_profile.py文件中,对想要分析的函数添加装饰器

@profile
def slow_function(a, b, c):
    ...

不加-v参数会将结果保存在script_to_profile.py.lprof文件中,使用python -m line_profiler script_to_profile.py.lprof可以查看。

memory_profiler

python程序的内存监控https://github.com/pythonprofilers/memory_profiler
安装:pip install -U memory_profiler
使用方法类似于line_profiler.

资源监控

  1. 整体监控: htop
  2. I/O操作: iotop
  3. 硬盘资源:df展示每个分区,du每个文件,-h参数human-readable
  4. 内存使用:free
  5. 打开文件:lsof
  6. 网络连接与配置: ss
  7. 网络使用: nethogs和iftop

以上是关于python程序性能分析的主要内容,如果未能解决你的问题,请参考以下文章

Python练习册 第 0013 题: 用 Python 写一个爬图片的程序,爬 这个链接里的日本妹子图片 :-),(http://tieba.baidu.com/p/2166231880)(代码片段

教你3个python「性能分析」工具,再也不用自己计算函数耗时了

在PaddlePaddle中的Notebook代码片段

常用python日期日志获取内容循环的代码片段

python 有用的Python代码片段

Python 向 Postman 请求代码片段