使用timeit为不同的测试语句运行一次设置代码

时间:2012-07-25 16:24:12

标签: python profiling timeit

使用timeit,我有一个setup代码块,用于设置填充虚拟数据的数据结构,我有两个语句(例如test1test2 )以不同的方式从这个数据结构中检索数据。

当我这样做时

t = timeit.Timer(test1, setup)
print t.timeit(3000)
t = timeit.Timer(test2, setup)
print t.timeit(3000)

我注意到设置运行两次,每次测试一次。是否有可能使两个测试共享相同的设置,即只运行一次setup代码块并使用为两个测试创建的完全相同的数据结构?

1 个答案:

答案 0 :(得分:4)

实现此目的的最简单方法是将设置代码放入模块setup.py,然后使用

"from setup import name_1, name_2, name_3"

作为setup的{​​{1}}参数。 (请注意,在这种情况下,通配符导入将无法正常工作。)

如果您不想使用单独的模块,请将代码放在主模块中并使用

timeit.timeit()