Python性能分析,应用性能分析,Python性能分析
Python性能分析,应用性能分析,Python性能分析
Python性能分析
https://www.cnblogs.com/lrysjtu/p/5651816.html
https://www.cnblogs.com/cbscan/articles/3341231.html
使用ipdb
使用profile
import profile def profileTest(): Total =1; for i in range(10): Total=Total*(i+1) print Total return Total if __name__ == "__main__": profile.run("profileTest()")
cProfile
python -m cProfile -s cumulative -o profile.stats test_time.py
Profile的成员函数:
enable(): 开始收集性能分析数据
disable(): 停止收集性能分析数据
create_stats(): 停止收集分析数据,并为已收集的数据创建stats对象
print_stats(): 创建stats对象并打印分析结果
dump_stats(filename): 把当前性能分析的结果写入文件(二进制格式)
runcall(func, *args, **kwargs): 收集被调用函数func的性能分析数据Stats类
pstats模块提供的Stats类可以帮助我们读取和操作stats文件(二进制格式)
cProfile
在python代码中调用cProfile
import cProfileimport recProfile.run('re.compile("foo|bar")')
输出为:
197 function calls (192 primitive calls) in 0.002 secondsOrdered by: standard namencalls tottime percall cumtime percall filename:lineno(function) 1 0.000 0.000 0.001 0.001 <string>:1(<module>) 1 0.000 0.000 0.001 0.001 re.py:212(compile) 1 0.000 0.000 0.001 0.001 re.py:268(_compile) 1 0.000 0.000 0.000 0.000 sre_compile.py:172(_compile_charset) 1 0.000 0.000 0.000 0.000 sre_compile.py:201(_optimize_charset) 4 0.000 0.000 0.000 0.000 sre_compile.py:25(_identityfunction) 3/1 0.000 0.000 0.000 0.000 sre_compile.py:33(_compile)
从分析报告结果中我们可以得到很多信息:
整个过程一共有197个函数调用被监控,其中192个是原生调用(即不涉及递归调用)总共执行的时间为0.002秒结果列表中是按照标准名称进行排序,也就是按照字符串的打印方式(数字也当作字符串)在列表中:ncalls表示函数调用的次数(有两个数值表示有递归调用,总调用次数/原生调用次数)tottime是函数内部调用时间(不包括他自己调用的其他函数的时间)percall等于 tottime/ncallscumtime累积调用时间,与tottime相反,它包含了自己内部调用函数的时间最后一列,文件名,行号,函数名
参考资料
http://python.jobbole.com/87621/
Python性能优化
pypy,numba,cython
ctypes,swig
cffi
参考资料
http://pypy.org/
ctypes官方文档:https://docs.python.org/3/library/ctypes.html
Python性能分析
相关内容
- Python学习手册之控制结构(一),,在上一篇文章中,我
- python 面向对象的程序设计,python类和对象理解,1.类与实
- python参数Sample Code,python参数,import tim
- 【Python】【基础知识】【异常】【Python的异常】报错、
- linux 安装 python 最全教程,linuxpython安装,环境:centos6
- Python复习(拾遗),,一摩尔定律 单位面
- python造数,python输入多个数,做性能测试时,往往需
- python文件读取:遇见的错误及解决办法,python文件读取
- python--面向对象,python3面向对象,面向对象与面向过程的
- Python之路--文件操作,Python文件,内容概要文件读写模式
评论关闭