解释 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来解决这个问题

一开始分析器看起来像这样:

最后的结果是这样的:

欢迎提出任何建议或更正。

此致

威廉·特里戈斯