我有两个要分析的函数。如果我运行kernprof,它表明我的第一个函数在75秒内运行,而第二个函数在15秒内运行python-cythonized。
我已经尝试过使用python中的time模块,并且自己测量了一下,我发现第一个函数的时间是12秒,第二个函数的时间是9秒。
为什么会这样呢?
发布于 2021-05-20 00:55:59
我们检查了一大堆分析器,发现对于我们用于测试的基准测试(来自Pyperformance套件),当执行纯kernprof
代码时,使用Python会导致大约7倍的速度减慢。这与您观察到的执行时间扩展(6.25倍)非常接近,所以我相信这几乎可以肯定是原因。
如果您想要使用开销较少(几乎为零)且更准确的分析器,有几个选择。我个人推荐Scalene,这是一个同时分析CPU、GPU和内存的分析器,所有这些都具有非常低的开销,并且不需要修改您的代码(即不需要添加@profile
装饰器)。完全公开:我是Scalene的主要作者之一。
https://stackoverflow.com/questions/67460474
复制相似问题