解释 Python 探查器
Interpreting Python profiler
我在 Spyder IDE 中使用分析器来分析一个简单的程序。其中一个函数 make_geology
是代码中最重要的部分。它似乎使用 24.7 个时间单位(它们是秒吗?)。但是当我查看从 make_geology
中发出的所有调用时(我用黄色突出显示的所有内容),时间总和仅增加了 1.3 个时间单位。
我是不是误解了在功能上花费的时间的测量和分配?我本以为花在 make_geology 上的时间 = 花在 make_geology
里面所有东西上的时间总和
似乎 make_geology 有一些功能是在函数调用本身内部完成的,而不是 "offloaded" 到其他组件(函数)。想象一下这样的事情:
def add_and_count(mylist, mynumber):
i = 0
while i < mynumber:
i = i + 1
mylist.append(i)
如果 mynumber 为 0,执行 add_and_count 的时间应该与执行列表的追加调用的时间大致相同。如果 mynumber 很大,list.append 将是杯水车薪
我已经提供this PR来解决这个问题
一开始分析器看起来像这样:
最后的结果是这样的:
欢迎提出任何建议或更正。
此致
威廉·特里戈斯
我在 Spyder IDE 中使用分析器来分析一个简单的程序。其中一个函数 make_geology
是代码中最重要的部分。它似乎使用 24.7 个时间单位(它们是秒吗?)。但是当我查看从 make_geology
中发出的所有调用时(我用黄色突出显示的所有内容),时间总和仅增加了 1.3 个时间单位。
我是不是误解了在功能上花费的时间的测量和分配?我本以为花在 make_geology 上的时间 = 花在 make_geology
里面所有东西上的时间总和似乎 make_geology 有一些功能是在函数调用本身内部完成的,而不是 "offloaded" 到其他组件(函数)。想象一下这样的事情:
def add_and_count(mylist, mynumber):
i = 0
while i < mynumber:
i = i + 1
mylist.append(i)
如果 mynumber 为 0,执行 add_and_count 的时间应该与执行列表的追加调用的时间大致相同。如果 mynumber 很大,list.append 将是杯水车薪
我已经提供this PR来解决这个问题
一开始分析器看起来像这样:
最后的结果是这样的:
欢迎提出任何建议或更正。
此致
威廉·特里戈斯