Tro*_*y D 7 python profiling cprofile pycharm python-3.x
我正在努力减少重构的程序的执行时间,并且在理解PyCharm中探查器的输出以及如果直接运行cProfile会得到的输出与输出的关系方面遇到困难。(下面显示了我的输出,突出显示了两行有趣的内容,在尝试进行修复之前,我想确保自己理解正确。)特别是,“时间”和“自己的时间”列代表什么?我猜Own Time是该函数消耗的时间,减去该函数中进行的任何其他调用的时间,而time是每个函数所花费的总时间(即,它们分别重命名为tottime和cumtime),但是我可以找不到任何能清楚地记录下来的东西。
另外,如何使用PyCharm的探查器或香草cProfile查找有关特别昂贵的功能的更多信息?例如,_strptime似乎花了我很多时间,但是我知道我的代码在四个不同的函数中都使用了它。我想了解一下这200万个调用在我的各个职能中的分布情况。我猜想calc_near_geo_size_and_latency函数中有一个不成比例的数字,但是在重写代码之前,我想要更多的证明。(我意识到我可以单独分析功能并进行比较,但我希望有一些简洁的方法。)
我正在使用Python 3.6和PyCharm Professional 2018.3。
特别是,“时间”和“自己的时间”列代表什么?我猜测 Own Time 是函数消耗的时间,减去该函数内进行的任何其他调用的时间,而 time 是每个函数花费的总时间(即它们分别重命名为 tottime 和 cumtime),但我可以找不到任何明确记录的内容。
您可以在这里查看自己的时间和时间的定义:https://www.jetbrains.com/help/profiler/Reference__Dialog_Boxes__Properties.html
自己的时间 - 所选功能的自己的执行时间。括号中表示在此调用中花费的自己时间与在此调用中花费的总时间相关的百分比。
时间 - 所选函数的执行时间加上该函数调用的函数所花费的所有时间。此调用所花费的时间百分比与括号中的所有调用所花费的时间相关。
另外,我该如何使用 PyCharm 的分析器或普通 cProfile 查找有关特别昂贵的函数的更多信息?
默认情况下,pycharm 使用 cProfile 作为分析器。也许您想在命令行上使用 cProfile?这里有很多这样做的例子:https ://docs.python.org/3.6/library/profile.html
例如, _strptime 似乎花费了我很多时间,但我知道它在我的代码中的四个不同函数中使用。我想详细了解这 200 万个呼叫如何分布在我的各个职能部门中。
请注意,测量某物的行为会对检索到的测量结果产生影响。对于调用多次,尤其是200万次的函数或方法,Profiler本身就会对测量值产生重大影响。
| 归档时间: |
|
| 查看次数: |
400 次 |
| 最近记录: |