使用TimeI管理设置代码

2024-10-02 14:24:44 发布

您现在位置:Python中文网/ 问答频道 /正文

作为我的一个pet项目的一部分,我需要用Python测试代码的各种不同实现的性能。我预计这是我经常做的事情,我想尽量使我为实现这个目标而编写的代码尽可能容易地更新和修改。在

目前它还处于初级阶段,但我已经开始使用字符串来管理常见的设置或测试代码,例如:

naiveSetup = 'from PerformanceTests.Vectors import NaiveVector\n' \
+ 'left = NaiveVector([1,0,0])\n' \
+ 'right = NaiveVector([0,1,0])'

这允许我只写一次代码,代价是增加了代码的可读性和更新的笨拙性。在

有更好的方法吗?在


Tags: 项目字符串代码fromimport目标性能事情
2条回答

使用三引号“”

setup_code = """
  from PerformanceTests.Vectors import NaiveVector
  left = NaiveVector([1,0,0])
  right = NaiveVector([0,1,0])
"""

另一个有趣的方法在timeit的文档中提供:

^{pr2}$

虽然这并不适合所有的需要。在

计时代码很好,但它仍然会让您猜测发生了什么。在

要了解实际发生了什么,请在调试器中随机暂停几次,然后检查调用堆栈。在

例如,在一个实现中比另一个实现慢30倍的代码中,堆栈的每个样本在花费的额外时间内有96.7%的概率下降,因此您可以看到原因。在

不需要猜测。在

相关问题 更多 >