应用python的性能测量工具cProfile
来源:互联网 发布:自控力 知乎 编辑:程序博客网 时间:2024/05/07 04:55
cProfile的命令行用法
python -m cProfile XXX.py输出到指定的文件:
python -m cProfile -o log.txt XXX.py
输出就被定向到了log.txt文件。
log.txt文件可以用VPT(http://visualpytune.googlecode.com)这样的图形工具打开。当log比较多的时候,可以很方便的进行过滤和时间的排序。
简单说一下log输出的阅读说明:
2145 function calls (2058 primitive calls) in 0.301 seconds Ordered by: standard name ncalls tottime percall cumtime percall filename:lineno(function) 1 0.000 0.000 0.000 0.000 _strptime.py:103(__calc_am_pm) 1 0.000 0.000 0.000 0.000 _strptime.py:115(__calc_date_time) 1 0.022 0.022 0.024 0.024 _strptime.py:12(<module>) 1 0.000 0.000 0.000 0.000 _strptime.py:160(__calc_timezone) 1 0.000 0.000 0.000 0.000 _strptime.py:176(TimeRE) 1 0.000 0.000 0.002 0.002 _strptime.py:179(__init__) 4 0.000 0.000 0.000 0.000 _strptime.py:212(<genexpr>) 6 0.000 0.000 0.000 0.000 _strptime.py:221(__seqToRE) 49 0.000 0.000 0.000 0.000 _strptime.py:236(<genexpr>) 4 0.000 0.000 0.001 0.000 _strptime.py:240(pattern) 1 0.000 0.000 0.001 0.001 _strptime.py:263(compile)
输出如上图,主要有:
ncalls: 函数被call的次数
tottime:函数总的耗时,但是不包括其子函数的耗时
percall:tottime平均到每次调用的耗时
cumtime:函数总的耗时,包括了其子函数的耗时(递归函数也不例外)
percall:cumtime平均到每次调用的耗时
filename:lineno(function) :每个函数各自的信息
cProfile在python代码中使用
import cProfile
cProfile.run('myfunction(arg1,arg2)', 'myfunction_prof')
使用以上的代码来引入cProfile, 并且使用其作为入口来调用待测函数。结果会放在myfunction_prof文件中。
这里再介绍一下结果文件在python下的阅读方法:
import pstatsp = pstats.Stats('myfunction_prof')pstats还有排序,筛选等方法,便于阅读。
以上的内容,很容易在python的reference中找到,请参考:
http://docs.python.org/2/library/profile.html
- 应用python的性能测量工具cProfile
- 应用python的性能测量工具cProfile
- Python中cProfile性能分析工具的使用
- python性能分析工具:cProfile使用
- Python脚本性能剖析-cprofile
- Python的7种性能测试工具:timeit、profile、cProfile、line_profiler、memory_profiler、PyCharm图形化性能测试工具、objgraph
- 使用cProfile分析Python程序性能
- PYTHON cProfile
- 性能测量工具备忘
- iperf-网络性能测量工具
- Netperf - 网络性能测量工具
- 性能分析器cProfile、line_profiler、memory_profiler
- GCC下的覆盖度测量和性能度量工具
- Iperf: 一个优秀的网络性能测量工具
- JavaScript测量和影响性能的工具和技术
- Web性能测量工具www.webpagetest.org
- 测量Web服务器的性能
- 测量程序性能的方法
- windows环境下VS2010编译python
- String 类型与 Date 的转换
- 安装keepalived时遇到错误解决办法记录
- 请尽快报名参加Imagine Cup 微软“创新杯”全球学生大赛
- 压缩多个文件
- 应用python的性能测量工具cProfile
- ARM9_S3C2440学习(七)SDRAM学习总结
- 天水市的介绍
- oracle PATCH下载地址汇总
- Pureftpd问题集之防火墙篇
- Android软件开发之获取通讯录联系人信息
- list_for_each_entry宏
- wmsys.wm_concat函数用法
- CoreData双向关系/删除规则