profile cProfile 效率分析

功效:对脚本进行简单的效率分析并生成分析图表

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)