我有一个Python模块,其中包含一个while循环,该循环应该运行一段固定的时间。我是通过在时间。时间()并一直运行到时间。时间()大于该变量。这没有提出任何问题,但同样的事情是不适合我在赛顿。现在我的时间越来越慢了。你知道吗
仅举一个简单的例子来说明这一点:
import time
cdef float wait_time = 3
def slow():
cdef float end_time = time.time() + wait_time
while time.time() < end_time:
pass
print("Done")
%timeit -r1 -n1 slow()
Done
44.2 µs ± 0 ns per loop (mean ± std. dev. of 1 run, 1 loop each)
%timeit -r1 -n1 slow()
Done
35.5 µs ± 0 ns per loop (mean ± std. dev. of 1 run, 1 loop each)
%timeit -r1 -n1 slow()
Done
35.5 µs ± 0 ns per loop (mean ± std. dev. of 1 run, 1 loop each)
%timeit -r1 -n1 slow()
Done
19.5 µs ± 0 ns per loop (mean ± std. dev. of 1 run, 1 loop each)
%timeit -r1 -n1 slow()
Done
35.5 µs ± 0 ns per loop (mean ± std. dev. of 1 run, 1 loop each)
%timeit -r1 -n1 slow()
Done
20.6 µs ± 0 ns per loop (mean ± std. dev. of 1 run, 1 loop each)
%timeit -r1 -n1 slow()
Done
20 µs ± 0 ns per loop (mean ± std. dev. of 1 run, 1 loop each)
%timeit -r1 -n1 slow()
Done
56 µs ± 0 ns per loop (mean ± std. dev. of 1 run, 1 loop each)
%timeit -r1 -n1 slow()
Done
1min 3s ± 0 ns per loop (mean ± std. dev. of 1 run, 1 loop each)
%timeit -r1 -n1 slow()
Done
32.9 µs ± 0 ns per loop (mean ± std. dev. of 1 run, 1 loop each)
%timeit -r1 -n1 slow()
Done
1min 5s ± 0 ns per loop (mean ± std. dev. of 1 run, 1 loop each)
通常情况下,除了在运行函数之前暂停一段时间之外,基本上不会有等待,在这种情况下,会有过多的等待。你知道吗
Python的
float
是C的double
。C的float
usually has只有24个有效位(其中一个是隐式的),使其精度达到128秒(自2004年以来)。当加法从向下舍入变为向上舍入时,它会从过去的一分钟变为将来的一分钟。你知道吗相关问题 更多 >
编程相关推荐