免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: huangyacong
打印 上一主题 下一主题

PYthon的循环,简直是垃圾啊。 [复制链接]

论坛徽章:
11
技术图书徽章
日期:2014-03-01 14:44:34天蝎座
日期:2014-05-21 22:11:59金牛座
日期:2014-05-30 17:06:14
1 [报告]
发表于 2012-04-19 16:56 |显示全部楼层
这是操作系统实现策略,和python或c没一毛钱关系
Linux能支持的精度就在1毫秒左右

论坛徽章:
11
技术图书徽章
日期:2014-03-01 14:44:34天蝎座
日期:2014-05-21 22:11:59金牛座
日期:2014-05-30 17:06:14
2 [报告]
发表于 2012-04-19 17:46 |显示全部楼层
回复 7# huangyacong
详细说下你的测试方法。

下面是我的实验结果(ubuntu 11.10,cpu i7 3.4GHz, mem 4G):
循环10000次,每次1微妙
执行了五次,可以看到时间介于1~10秒,精度略高于1毫秒,但完全达不到1微妙
随着硬件发展和软件更新,这个精度会逼近,但现在还差很远
  1. #include <stdio.h>
  2. #include <unistd.h>

  3. int main(int argc, char* argv[])
  4. {
  5.         unsigned int cnt = 0;
  6.         while (1)
  7.         {
  8.                 usleep(1);
  9.                 if (++cnt > 10000) break;
  10.         }

  11.         return 0;
  12. }
复制代码
cpp $gcc -g -O2 -Wall usleep.c
cpp $time ./a.out

real        0m4.249s
user        0m0.000s
sys        0m1.176s
cpp $time ./a.out

real        0m2.238s
user        0m0.000s
sys        0m0.664s
cpp $time ./a.out

real        0m1.975s
user        0m0.000s
sys        0m0.604s
cpp $time ./a.out

real        0m7.745s
user        0m0.000s
sys        0m2.296s
cpp $time ./a.out

real        0m3.088s
user        0m0.000s
sys        0m0.876s





   

论坛徽章:
11
技术图书徽章
日期:2014-03-01 14:44:34天蝎座
日期:2014-05-21 22:11:59金牛座
日期:2014-05-30 17:06:14
3 [报告]
发表于 2012-04-19 18:09 |显示全部楼层
回复 9# huangyacong
代码?
结果?
给个有说服力的实例


   

论坛徽章:
11
技术图书徽章
日期:2014-03-01 14:44:34天蝎座
日期:2014-05-21 22:11:59金牛座
日期:2014-05-30 17:06:14
4 [报告]
发表于 2012-04-19 18:35 |显示全部楼层
回复 13# huangyacong
usleep或等价的调用在哪里?



   

论坛徽章:
11
技术图书徽章
日期:2014-03-01 14:44:34天蝎座
日期:2014-05-21 22:11:59金牛座
日期:2014-05-30 17:06:14
5 [报告]
发表于 2012-04-19 18:36 |显示全部楼层
回复 14# huangyacong
Python的结果在预期范围,没有争议
重点把C的版本给我看下


   

论坛徽章:
11
技术图书徽章
日期:2014-03-01 14:44:34天蝎座
日期:2014-05-21 22:11:59金牛座
日期:2014-05-30 17:06:14
6 [报告]
发表于 2012-04-19 18:38 |显示全部楼层
莫非Windows能实现1微妙的sleep,我很好奇。。

论坛徽章:
11
技术图书徽章
日期:2014-03-01 14:44:34天蝎座
日期:2014-05-21 22:11:59金牛座
日期:2014-05-30 17:06:14
7 [报告]
发表于 2012-04-24 10:28 |显示全部楼层
回复 21# macrossyu
lz的应该是windows
你是Linux


   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP