功效:对脚本进行简单的效率分析并生成分析图表
test.py:
import os
import sys
def process(filename):
print filename
for (dirpath, dirnames, filenames) in os.walk(sys.argv[1]):
for filename in filenames:
process(filename)
cProfile用法:
# 生成.pstats分析文档
python -m cProfile -o profile.pstats test.py /usr
# 排序
python -m cProfile -s tottime myscript.py
# 查看pstats文档
python -m pstats profile.pstats
# ?: 查看可用指令;sort cumtime:排序;stats:查看pstats文档
-s 选项:
'calls' (call count)
'cumulative' (cumulative time)
'cumtime' (cumulative time)
'file' (file name)
'filename' (file name)
'module' (file name)
'ncalls' (call count)
'pcalls' (primitive call count)
'line' (line number)
'name' (function name)
'nfl' (name/file/line)
'stdname' (standard name)
'time' (internal time)
'tottime' (internal time)

gprof2dot用法:
# 安装 gprof2dot
pip install gprof2dot
# 通过.pstats文档生成相应的dot文档
python -m gprof2dot -f pstats profile.pstats
# 安装graphviz(centOS系统)
sudo yum install graphviz
# 输出png文档
python -m gprof2dot -f pstats profile.pstats | dot -T png -o profile.png
作者:Chihwei_hsu
来源:http://chihweihsu.com
Github:https://github.com/HsuChihwei
本文介绍了一种使用Python内置模块cProfile对脚本进行简单效率分析的方法,并展示了如何利用gprof2dot工具将分析结果可视化为图表。
1570

被折叠的 条评论
为什么被折叠?



