0

我有两个我描述的功能。如果我运行 kernprof,它说我的第一个函数在 75 秒内运行,但第二个函数在 15 秒内运行 python-cythonized。

我已经尝试在python中使用时间模块并自己测量它,我发现第一个函数更像是12秒,第二个函数更像是9秒。

为什么呢?

4

1 回答 1

0

我们检查了一堆分析器,发现对于我们用于测试的基准(来自 Pyperformance 套件),kernprof在执行纯 Python 代码时使用会导致大约 7 倍的速度下降。这与您观察到的执行时间膨胀(6.25x)非常接近,所以我相信这几乎肯定是原因。

如果您想使用开销更少(几乎没有)并因此更准确的分析器,有一些选项。我个人推荐Scalene,一个同时分析 CPU、GPU 和内存的分析器,所有这些都具有非常低的开销并且不需要修改你的代码(即,@profile不需要添加装饰器)。全面披露:我是 Scalene 的主要作者之一。

于 2021-05-20T00:55:59.307 回答