码迷,mamicode.com
首页 > 编程语言 > 详细

python profile

时间:2014-06-09 18:59:10      阅读:219      评论:0      收藏:0      [点我收藏+]

标签:c   a   int   使用   文件   数据   

1. python -m cProfile myprogram.py
2. 使用import profile模块
import profile
def profileTest():
    ...
if __name__ == "__main__":
    profile.run("profileTest()")
3.ipython %%prun

其中输出每列的具体解释如下:
ncalls:表示函数调用的次数;
tottime:表示指定函数的总的运行时间,除掉函数中调用子函数的运行时间;
percall:(第一个 percall)等于 tottime/ncalls;
cumtime:表示该函数及其所有子函数的调用运行的时间,即函数开始调用到返回的时间;
percall:(第二个 percall)即函数运行一次的平均时间,等于 cumtime/ncalls;
filename:lineno(function):每个函数调用的具体信息;
如果需要将输出以日志的形式保存,只需要在调用的时候加入另外一个参数。如 profile.run("profileTest()","testprof")。

对于 profile 的剖析数据,如果以二进制文件的时候保存结果的时候,可以通过 pstats 模块进行文本报表分析,它支持多种形式的报表输出,是文本界面下一个较为实用的工具。使用非常简单:
import pstats
p = pstats.Stats(‘testprof‘)
p.sort_stats("name").print_stats()
其中 sort_stats() 方法能够对剖分数据进行排序, 可以接受多个排序字段,如 sort_stats(‘name‘, ‘file‘) 将首先按照函数名称进行排序,然后再按照文件名进行排序。常见的排序字段有 calls( 被调用的次数 ),time(函数内部运行时间),cumulative(运行的总时间)等。此外 pstats 也提供了命令行交互工具,执行 python – m pstats 后可以通过 help 了解更多使用方式。

性能分析的结果以图形的方式呈现,常见的可视化工具有 Gprof2Dot,visualpytune,KCacheGrind 等。

python profile,布布扣,bubuko.com

python profile

标签:c   a   int   使用   文件   数据   

原文地址:http://www.cnblogs.com/perel/p/3777379.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!