windows和linux下的sleep之比较

本文通过在Windows和Linux环境下运行同一段程序,对比了操作系统对于sleep指令的不同响应精度。结果显示,在不同时间间隔内,Linux下的sleep指令更加精确。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 1 #include <ace/ACE.h>
 2 
 3 #include <ace/OS.h>
 4 
 5 #include <ace/Log_Msg.h>
 6 
 7 using namespace std; 
 8 
 9 int main(int argc, char *argv[]) 
10 
11 
12 
13   ACE_DEBUG(( LM_NOTICE, "%D/n" )); 
14 
15   ACE_OS::sleep( ACE_Time_Value(0,1*1000) ); 
16 
17   ACE_DEBUG(( LM_NOTICE, "%D sleep 1/n" )); 
18 
19   ACE_OS::sleep( ACE_Time_Value(0,5*1000) ); 
20 
21   ACE_DEBUG(( LM_NOTICE, "%D sleep 5/n" )); 
22 
23   ACE_OS::sleep( ACE_Time_Value(0,10*1000) ); 
24 
25   ACE_DEBUG(( LM_NOTICE, "%D sleep 10/n" )); 
26 
27   ACE_OS::sleep( ACE_Time_Value(0,50*1000) ); 
28 
29   ACE_DEBUG(( LM_NOTICE, "%D sleep 50/n" )); 
30 
31   ACE_OS::sleep( ACE_Time_Value(0,100*1000) ); 
32 
33   ACE_DEBUG(( LM_NOTICE, "%D sleep 100/n" )); 
34 
35   ACE_OS::sleep( ACE_Time_Value(0,1000*1000) ); 
36 
37   ACE_DEBUG(( LM_NOTICE, "%D sleep 1000/n" )); 
38 
39   return EXIT_SUCCESS;
40 
41 }
42 

linux下的结果:

Sat Jan 12 2008 20:55:26.459703

Sat Jan 12 2008 20:55:26.460899 sleep 1 // 1.196ms

Sat Jan 12 2008 20:55:26.466037 sleep 5 // 5.138ms

Sat Jan 12 2008 20:55:26.476203 sleep 10 // 10.166ms

Sat Jan 12 2008 20:55:26.526348 sleep 50 // 50.145ms

Sat Jan 12 2008 20:55:26.626466 sleep 100 // 100.118ms

Sat Jan 12 2008 20:55:27.626739 sleep 1000 // 1000.273ms

windows下的结果:

Sat Jan 12 2008 22:51:07.993000

Sat Jan 12 2008 22:51:08.009000 sleep 1 // 16ms

Sat Jan 12 2008 22:51:08.009000 sleep 5 // 0ms

Sat Jan 12 2008 22:51:08.024000 sleep 10 // 15ms

Sat Jan 12 2008 22:51:08.071000 sleep 50 // 27ms

Sat Jan 12 2008 22:51:08.181000 sleep 100 //110ms

Sat Jan 12 2008 22:51:09.181000 sleep 1000 // 1000ms

由此看来,windows下sleep的精度为15ms,,但是1000ms以下的误差都比较大

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值