正确使用cProfile的方法

时间:2016-10-20 01:46:43

标签: python cprofile

我想介绍一些我写过的函数。我正在查看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 个答案:

答案 0 :(得分:1)

它们几乎相同:https://github.com/python/cpython/blob/581eb3e0dc0bc0d306363c8d404ffd9988b0cc87/Lib/cProfile.py#L106

如果出现异常,

runcall将停止分析,否则它将具有相同的功能。