相关疑难解决方法(0)

Python的time.clock()与time.time()的准确性?

哪个更适合用于Python中的计时?time.clock()或time.time()?哪一个提供更准确?

例如:

start = time.clock()
... do something
elapsed = (time.clock() - start)
Run Code Online (Sandbox Code Playgroud)

start = time.time()
... do something
elapsed = (time.time() - start)
Run Code Online (Sandbox Code Playgroud)

python time

416
推荐指数
11
解决办法
40万
查看次数

python的time.sleep()有多准确?

我可以给它浮点数,比如

time.sleep(0.5)
Run Code Online (Sandbox Code Playgroud)

但它有多准确?如果我给它

time.sleep(0.05)
Run Code Online (Sandbox Code Playgroud)

它真的睡了大约50毫秒?

python time sleep

82
推荐指数
8
解决办法
9万
查看次数

Python:高精度time.sleep

你能告诉我如何在Win32和Linux上的Python2.6中获得高精度的睡眠功能?

python

40
推荐指数
2
解决办法
8万
查看次数

什么是"忙等待"与"睡眠"的权衡?

这是对我之前的问题的延伸

unix/linux套接字中的阻塞模式如何工作?

我现在从互联网收集的内容,所有调用阻塞调用的进程都会进入休眠状态,直到调度程序找到解除阻塞的原因.原因可以从缓冲区空到缓冲区满到任何其他条件.

但是,这可以成为实时的有效方式,让我们说硬/实时应用程序?由于当解除阻塞条件成立时,进程未被解锁,而是当调度程序给出他的CPU切片时,并且解除阻塞条件都为真.

好像你想要一个响应式解决方案,我不这样做"旋转锁"或"忙等待"是正确的方法,CPU切片被浪费,整个系统将无法响应或可能响应不佳.

有人可以清楚这个相互矛盾的想法.

c linux operating-system

22
推荐指数
2
解决办法
3万
查看次数

Python time.sleep vs忙等待准确性

我正在使用python标准库中的time.sleep函数,发现它不适合亚毫秒延迟.从测试中我发现实际等待1到1毫秒等待1.1-1.2毫秒.实现忙碌等待使准确度达到1%以内.我用了:

def busy_wait(dt):   
    current_time = time.time()
    while (time.time() < current_time+dt):
        pass
Run Code Online (Sandbox Code Playgroud)

并且可以在降低1%准确度之前下降到0.0001秒.

我的主要问题是:

  • 为什么睡眠功能如此不准确(可能是C问题)?获得更好的CPU和更高的时钟速度会改变这个吗?
  • 为什么有人会睡觉?我看到的唯一优势是节能,仅限于嵌入式系统,不是吗?
  • 通过校准补偿睡眠的不准确性是否可行?像这样:
def sleep(dt):
    sleep(calibration_function(dt))

顺便说一句,我读到睡眠甚至不能很长时间等待:Python time.sleep()的上限? 我也在某处读到了制作一个更短时间间隔的循环来提高精度,但是当我想延迟0.01秒时,这是没用的.Karl Voigtland提到使用ctypes的nanosleep,但我觉得这有点过分,而且time.sleep应该做它的预期行为.

time.sleep是一个破碎的python功能?或者没有人关心准确的时间测量吗?

python performance sleep wait

9
推荐指数
1
解决办法
1万
查看次数

标签 统计

python ×4

sleep ×2

time ×2

c ×1

linux ×1

operating-system ×1

performance ×1

wait ×1