首页  >   经验  >   如何实现实时统计速度

如何实现实时统计速度

查看 codexia 的博客 2015-06-25 14:11:13 1495
实时   统计   速度   下载  
手机阅读 | 转发赚积分
手机收藏 | 分享给好友
简介为什么统计的速度不准确呢,甚至程序崩溃呢?本文简单的分析复制文件和下载文件等操作文件如何显示速度以及含有实现的代码示例。详细讲解原理和出错的地方,深入分析,一看就完全明白,再也不会在这里陷入迷糊。

    如何实现实时统计速度
    其实这个说起来不难。但是实际操作确实会有些问题的,稍不注意,就得不到自己要的效果。
    首先要明白时间统计的原理。在统计速度时,可不要使用系统时间来计算,因为那样也太不准确了。使用函数GetTickCount精度稍微高些,这个精度是ms级别,对于一般的场合都使用,对于严格的要求,还是不够,那就要使用多媒体计时器或者高精度计时器。这两个的资料,请查阅MSDN。
    时间统计,其实就是在读取写入或者下载上传时,完成一批数据后,使用这批数据量除以使用的时间,得到的就是速度。这个道理大家都懂。但是实际操作确实有些问题的。下面来看看。
    在循环中实时显示速度,也就是说,读取1GB数据,每次读取1MB,那么久是10GB除以1MB次,即1K(1000)次。在这1000次中,每操作一次数据,就会形成数据流,完成操作后,就花费了时间,这时使用数据量除以时间的得到的自然就是实时的速度。所以我们会在操作前获得一次时间,操作后获得时间,得到差值,差值就是使用的时间。速度就出来了。但是有时候发现,差值时间是0.这样程序崩溃,出现除0错误。你知道是为什么吗?
    这个问题就是我们经常遇见的问题。刚开始做这个,以为是很简单。但是做着却发现很不如意,也不知道问题出在哪了。接下来,与你说说原因。
    上面提到了精度的问题。GetTickCount的精度是毫秒级别。加入每次操作的数据量很小,在现代的CPU环境下,处理速度极快,毫秒级实在是太长了,所以就不精确了。数据量小,一毫秒都没用,数据就处理完了。开始和结束的毫秒值一样,这样时间差就为0了,这样就出现了除零错误。这种问题,刚接触这个方面的编程的往往就不知道,以为很简单,实则没那么简单。在这种情况下,要处理好精度问题,就要想办法了,要让时间形成差值不为零即可。当然不要人为的延时,那是错误的。


    解决精度问题,可以从

1.微信扫码
2.点击按钮,粘贴命令
自动刷新 手动刷新
命令:rd 13H/) 复制
提示:如果您发送了命令,自动刷新会展开全文。自动刷新最多60秒,超过60秒请点击手动刷新。
创作不易,汗水不止!为防止劳动果实被爬虫窃取,开启了反爬机制,需要您发送命令继续阅读。取关会再次出现此提示。一段时间后出现此提示,请再次发送即可。如有问题,请加客服微信Freeme007处理。感谢您的理解。
标注
评论
站内搜
百度搜
传送到手机
手机扫码,识别文字,完成传送x
加载中...
标注内容x
加载中...
添加标注x
文章标题:如何实现实时统计速度
文章地址:http://www.cjjjs.com/article/6252015131114811
转载到个人博客,请在文末带上右侧内容(含超链接):本文转载自:如何实现实时统计速度
收藏 0 点赞 0
公众号
微信赞赏
支付宝赞赏
领支付宝大红包
QQ群

相关阅读

  1. C++ Primer Plus 6th 5.9 编程练习题 第8题 统计单词数,用done做结束识别 查找全网同类文章
  2. C++ Primer Plus 6th 5.9 编程练习题 第5题 书籍销售统计分析 查找全网同类文章
  3. 如何安全下载软件?安全下载软件要如何避开各种坑? 查找全网同类文章
  4. windows git的安装与使用 查找全网同类文章
  5. win32实现鼠标经过控件时的实时提示功能 查找全网同类文章
  6. 键盘方向键控制鼠标光标移动,并智能调节速度和绘制速度曲线 查找全网同类文章
  7. 如何提高找Bug的效率,提高找Bug的速度 查找全网同类文章
  8. 键盘的重复速度属性对长按的按键消息产生频率的影响 查找全网同类文章
  9. 鼠标移动时的背景透明文字不透明的实时提示框效果实现 查找全网同类文章
  10. win32鼠标移动实时提示框漂离主窗口的问题分析和解决办法 查找全网同类文章
分享到:

相关阅读

猜您感兴趣