Python cProfile:如何从分析数据中过滤特定调用?
我开始对一个脚本进行性能分析,这个脚本里面有很多 sleep(n)
语句。总的来说,我发现超过99%的运行时间都在“睡觉”。不过,在它真正进行工作的时间里,有时会出现性能问题,但当我使用像kcachegrind这样的工具时,相关的性能数据就变得很难找。
有没有办法让我在分析时忽略某些调用或函数呢?或者,我该如何通过后期处理分析数据文件来过滤掉这些调用呢?
我正在使用profilestats这个装饰器( http://pypi.python.org/pypi/profilestats )。
谢谢!
1 个回答
2
你需要的不仅仅是在 sleep() 期间排除一些样本。你还需要剩下的样本能够给你提供有用的信息。这就叫做堆栈采样,按照实际时间来进行,能够总结出每行代码的百分比。Zoom 是一个很好的工具,可以用来进行这种采样。我希望忽略掉包含特定函数的样本不会太难。