Timeit 不返回实际时间
Timeit not returning actual time
我正在使用 timeit
模块测试堆的实现,但我无法让它以浮点形式打印时间:
def testCustomHeapStartUp(*args):
h = MinHeap(args[0])
return True
if __name__ == "__main__":
for i in range(3):
testList = random.sample(range(100), 100)
print(timeit.Timer("testCustomHeapStartUp(testList)", \
"from __main__ import testCustomHeapStartUp; from __main__ import testList; gc.enabled()"))
这是输出:
<timeit.Timer object at 0x101a58978>
<timeit.Timer object at 0x101a58978>
<timeit.Timer object at 0x101a58978>
timeit.Timer(...)
只创建实例,它不会 运行 和计时代码。
您需要在 Timer
实例上调用 .timeit()
函数:
print(timeit.Timer(..., ...).timeit(n))
其中 n
是您希望 timeit()
到 运行 代码段的次数。
因为 timeit
经常出现,我会重构你的代码:
from timeit import Timer
def testCustomHeapStartUp(*args):
h = MinHeap(args[0])
return True
if __name__ == "__main__":
for i in range(3):
testList = random.sample(range(100), 100)
t = Timer(
"testCustomHeapStartUp(testList)",
"from __main__ import testCustomHeapStartUp; from __main__ import testList; gc.enabled()",
)
print(t.timeit())
我正在使用 timeit
模块测试堆的实现,但我无法让它以浮点形式打印时间:
def testCustomHeapStartUp(*args):
h = MinHeap(args[0])
return True
if __name__ == "__main__":
for i in range(3):
testList = random.sample(range(100), 100)
print(timeit.Timer("testCustomHeapStartUp(testList)", \
"from __main__ import testCustomHeapStartUp; from __main__ import testList; gc.enabled()"))
这是输出:
<timeit.Timer object at 0x101a58978>
<timeit.Timer object at 0x101a58978>
<timeit.Timer object at 0x101a58978>
timeit.Timer(...)
只创建实例,它不会 运行 和计时代码。
您需要在 Timer
实例上调用 .timeit()
函数:
print(timeit.Timer(..., ...).timeit(n))
其中 n
是您希望 timeit()
到 运行 代码段的次数。
因为 timeit
经常出现,我会重构你的代码:
from timeit import Timer
def testCustomHeapStartUp(*args):
h = MinHeap(args[0])
return True
if __name__ == "__main__":
for i in range(3):
testList = random.sample(range(100), 100)
t = Timer(
"testCustomHeapStartUp(testList)",
"from __main__ import testCustomHeapStartUp; from __main__ import testList; gc.enabled()",
)
print(t.timeit())