大约在8-9年前,我看到了一个用于Visual Studio的工具(我不太记得它的名字了),它可以可视化函数调用及其性能。我真的很喜欢它,所以我想知道是否有类似于Python中的东西。假设你有三个函数:
def first_func():
...
def second_func():
...
for i in xrange(10):
first_function()
...
def third_func():
...
for i in xrange(5):
second_function()
...因此,该工具的最终报告是这样的(包括连接图):
first_func[avg 2ms] <--50 times--< second_func[avg 25ms] <--5 times--< third_func[avg 140ms]像这样的工具可以更容易地找到系统中的瓶颈。尤其是对于大型系统。
发布于 2011-04-22 02:09:01
您可以使用与python安装捆绑在一起的分析器。Python Profiler Link
发布于 2016-02-12 01:13:19
使用分析器逐行计时和执行频率:
首先,安装line_profiler
其次,通过@profile装饰器修饰你想要测量的函数来修改你的源代码。
第三,kernprof -l -v yourscript.py
-l选项告诉kernprof将@profile装饰器注入到脚本的内置中,而-v则告诉kernprof在脚本完成后显示计时信息。
输出:

发布于 2011-04-22 03:37:43
通常认为你需要知道的是事物被调用了多少次,它们花费了多少时间(自我与包含),以及谁-调用了多少时间。然后你就可以戴上侦探的帽子,希望能找出问题所在。
还有另一种方法,不是询问函数,而是询问代码行,它们在堆栈上的挂钟时间的百分比是多少。原因是,如果这样的代码行可以不花时间,通过避免或删除它或以不同的方式完成它的工作,那么百分比就是可以节省的百分比。你不一定非得是个侦探才能找到它。代码中的任何瓶颈都必须显示为这样的一行,精确的百分比并不重要。Here's an example.
https://stackoverflow.com/questions/5747956
复制相似问题