时间开销分析
项目根目录运行以下命令,可以跑script/run_snowball.py脚本,并且得出详细地时间开销。
-
这个是跑小规模的样例句子的时间分析
python -m cProfile -s cumulative script/run_snowball.py >time_analysis.log
-
这个是跑小规模的地在所有热门帖子上的时间分析
python -m cProfile -s cumulative script/run_snowball_large_by_one.py >large_10_time_analysis.log
时间分析的 输出解释:
ncall:函数运行次数
tottime: 函数的总的运行时间,减去函数中调用子函数的运行时间
第一个percall:percall = tottime / nclall
cumtime:函数及其所有子函数调整的运行时间,也就是函数开始调用到结束的时间。
第二个percall:percall = cumtime / nclall
可视化分析
- 参考资源,https://zhuanlan.zhihu.com/p/58535923
总的方法分三步走:
1、安装snakeviz,方法也很简单,用以下命令行搞定:
pip install snakeviz
2、运行Python代码的同时用cProfile保存运行时间数据:
python -m cProfile -o run_snowball.prof script/run_snowball.py
3、跑完之后当前文件夹里就有一个 run_snowball.prof 文件,保存了代码刚刚运行时的时间数据,用以下命令行就可以可视化分析啦:
snakeviz run_snowball.prof