正确使用 cProfile 的方法
Posted
技术标签:
【中文标题】正确使用 cProfile 的方法【英文标题】:Correct Way To Use cProfile 【发布时间】:2016-10-20 01:46:42 【问题描述】:我想对我编写的一些函数进行概要分析。我正在查看 cProfile 的文档,但我不明白以下两段代码之间的区别(如果有的话)是:
import cProfile
profile = cProfile.Profile()
result = profile.runcall(func, *args, **kwargs)
profile.dump_stats('profile.stats')
和
import cProfile
profile = cProfile.Profile()
profile.enable()
result = func(*args, **kwargs)
profile.disable()
profile.dump_stats('profile.stats')
这两个块是等价的,还是做些微妙的不同的事情?
【问题讨论】:
【参考方案1】:它们几乎相同:https://github.com/python/cpython/blob/581eb3e0dc0bc0d306363c8d404ffd9988b0cc87/Lib/cProfile.py#L106
runcall
将在出现异常时停止分析,否则功能相同。
【讨论】:
那么简单而全面。以上是关于正确使用 cProfile 的方法的主要内容,如果未能解决你的问题,请参考以下文章
将 cProfile 与 asyncio 代码一起使用的正确方法是啥?