Python cProfile:如何从分析数据中过滤掉特定的调用?
Posted
技术标签:
【中文标题】Python cProfile:如何从分析数据中过滤掉特定的调用?【英文标题】:Python cProfile: how to filter out specific calls from the profiling data? 【发布时间】:2011-04-15 06:28:50 【问题描述】:我已经开始分析一个包含许多 sleep(n)
语句的脚本。总而言之,我有超过 99% 的运行时间都花在了睡眠上。尽管如此,它在实际工作期间偶尔会遇到性能问题,但相关的、有趣的分析数据变得非常难以识别,例如使用 kcachegrind。
有没有办法可以将某些调用/函数列入黑名单,以免被分析? 或者,如何通过分析数据文件的后处理过滤掉此类调用?
我正在使用 profilestats 装饰器 (http://pypi.python.org/pypi/profilestats)。
谢谢
【问题讨论】:
【参考方案1】:您需要的不仅仅是在 sleep() 期间排除样本。您需要剩余的样本来告诉您一些有用的信息。那将是堆栈采样,在挂钟时间,在代码行级别总结百分比。 Zoom 是这种采样的好工具,我希望忽略包含特定功能的样本不会太难。
【讨论】:
以上是关于Python cProfile:如何从分析数据中过滤掉特定的调用?的主要内容,如果未能解决你的问题,请参考以下文章
cProfile - 将数据保存在 Python 对象中/延迟写入磁盘