找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
查看: 8183|回复: 5

[交流] 猎豹浏览器居然能提高Sleep函数的精度??测试为证,有图有真相

[复制链接]

275

主题

3017

回帖

1

精华

管理员

嗷嗷叫的老马

积分
17064

论坛牛人贡献奖关注奖最佳版主进步奖人气王疯狂作品奖精英奖赞助论坛勋章乐于助人勋章

QQ
发表于 2012-11-7 22:22:36 | 显示全部楼层 |阅读模式
有点意思,是之前写一个绘图程序,为了让图像的生成过程有个视觉效果,所以每绘一条线后就Sleep 1,这样就能有个绘出来的效果,而不是"啪"地一下子绘出来.

但是发现有时绘制速度快了一倍不止,有时又慢了点,就觉得怪,代码没动过啊.

结果才注意到与打开了猎豹浏览器有关,它使用的内核是Chrome内核,让我想起了CSDN上的一个哥们开的帖子,他当时也遇到的问题是开了Chrome浏览器后他的程序性能提升进10倍(帖子见:http://bbs.csdn.net/topics/310257253).

于是我想了一下,唯一能影响的只能是Sleep函数,便写了个工程进行测试(代码在后面),结果如图:

以下是未开猎豹浏览器时的效果:



以下是打开猎豹后并开几个图片与脚本比较多的页面,例如开三五个淘宝首页后:



这Sleep函数的精度一下子就提高了,真是怪.

我也测试过CPU的频率,好象也不是频率被提高了,只与这浏览器有关.

代码下载地址:

http://www.m5home.com/blog/archives/2012/11/32.html

大家测试一下看看,有点意思的,哈哈.
我就是嗷嗷叫的老马了......

275

主题

3017

回帖

1

精华

管理员

嗷嗷叫的老马

积分
17064

论坛牛人贡献奖关注奖最佳版主进步奖人气王疯狂作品奖精英奖赞助论坛勋章乐于助人勋章

QQ
 楼主| 发表于 2012-11-7 23:49:45 | 显示全部楼层
把上一篇"猎豹浏览器居然能提高Sleep函数的精度??测试为证,有图有真相"发到群里后,大家研究了好一阵,都觉得挺有意思

不过在我们还在研究为什么Chrome内核会对Sleep函数的精度进行影响时,凄临雨同学直接对所有人进行BS,原因是这问题是个非常简单,就是一个调用timeBeginPeriod/timeEndPeriod函数设置定时器精度而已.

当下一试,果然,加入timeBeginPeriod/timeEndPeriod后定时器精度就上来了,哈哈!

这顿BS真是划得来,又学会一招 {:soso_e113:}

在此感谢大家,特别感谢 凄临雨 同学!

加入timeBeginPeriod/timeEndPeriod后的测试代码:

http://www.m5home.com/blog/archives/2012/11/33.html

3

主题

50

回帖

0

精华

银牌会员

积分
444
发表于 2012-11-8 00:22:50 | 显示全部楼层
那,为何不开浏览器时不同机器测试结果不同呢?难道是因为各机器定时器精度本身就不同?我记得原来看高精度延时函数的时候,里面有个判断,说是有的机器不支持高精度计时器。

5

主题

75

回帖

0

精华

管理员

积分
1353
发表于 2012-11-8 11:32:26 | 显示全部楼层
有可能是sleep的优先级不一样?最终造成精度不一样?

275

主题

3017

回帖

1

精华

管理员

嗷嗷叫的老马

积分
17064

论坛牛人贡献奖关注奖最佳版主进步奖人气王疯狂作品奖精英奖赞助论坛勋章乐于助人勋章

QQ
 楼主| 发表于 2012-11-17 12:03:51 | 显示全部楼层
jessezappy 发表于 2012-11-8 00:22
那,为何不开浏览器时不同机器测试结果不同呢?难道是因为各机器定时器精度本身就不同?我记得原来看高精度 ...

已经搞清楚了,是用timeBeginPeriod/timeEndPeriod函数设置定时器精度
我就是嗷嗷叫的老马了......

275

主题

3017

回帖

1

精华

管理员

嗷嗷叫的老马

积分
17064

论坛牛人贡献奖关注奖最佳版主进步奖人气王疯狂作品奖精英奖赞助论坛勋章乐于助人勋章

QQ
 楼主| 发表于 2012-11-17 12:04:07 | 显示全部楼层
billypon 发表于 2012-11-8 11:32
有可能是sleep的优先级不一样?最终造成精度不一样?

看第二帖,哈哈.
我就是嗷嗷叫的老马了......

您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

快速回复 返回顶部 返回列表