关于timeSetEvent的精确度缺陷分析_备份以防后续使用到时作为参考
原文: https://blogs.msdn.microsoft.com/mediasdkstuff/2009/07/02/why-are-the-multimedia-timer-apis-timesetevent-not-as-accurate-as-i-would-expect/
多媒体定时器的触发原理,通过在硬件层次的中断控制来达到ms毫秒级别的定时精度,由于这个过程需要切换用户态与kernal内核态,大约为10-16ms,
故对于使用timeSetEvent函数来进行定时使用的程序,在不需要十分高精度的情况下,是可以满足大多数的情况的,
但是,对于多媒体,如视频、音频则还有所欠缺;
余下的文章,介绍了操作系统的操作机制,比如影响线程被运行的因素,这里指出来,是包括2个因素,一个为线程优先级,另一个则是线程量度(Thread Quantum),优先级很好理解,另一个线程量度(Thread Quantum)则是表示一个线程被其他线程挤占处理器前,可以独占处理器的最大时间,比如一个线程可以最多占用100ms的处理器时间,在基于NT的系统上,其他系统可能会略有不同;
然后又举了些例子,表示要使用1ms精度的定时器与周期处理时,若是有其他高优先级(高于多媒体定时器)的线程在运行,那么很可能无法得到实时的定时处理,而是会让该繁忙的线程,用于100ms的时间后才会被操作系统强制去执行其他的任务,若是运气够好,那么下一个任务则有可能是我们编写的线程;
接下来则是指出tiemBeginPeriod/tiemEndPeriod的一些副作用,当用于高精度(短时间)的定时器时,CPU会花费大量的时间用于上下文切换(context switch),任务调度(scheduling task)等,会有一定的开销需要考虑,在涉及高精度的场景时,这些是必须要考虑到的。
最后,关于timeSetEvent有个无文档的限制:在同一个线程内,仅能定义最多16个定时器,在多个询问中都有出现类似的问题
比较推荐的做法是使用CreateTimerQueue来替换这个,避免这个不成文的限制
http://www.codeguru.com/cpp/w-p/system/timers/article.php/c2837/CWaitableTimer.htm
http://www.cplusplus.com/forum/windows/189665/
https://social.msdn.microsoft.com/Forums/vstudio/en-US/e5eecc1f-2d0c-4fdb-abfb-8c81ebc8f748/problem-with-timesetevent-for-over-16-concurrent-timers?forum=vcgeneral
关于timeSetEvent的精确度缺陷分析_备份以防后续使用到时作为参考相关推荐
- 在统计学中参数的含义是指_期刊论文中科研统计学缺陷分析及解决路径
中华医学科研管理杂志, 2018,31(5) 张策, 陈淑良, 王晓桐, 等 摘要目的 从期刊论文统计方法缺陷方面进行分析,并提出解决方案. 方法 资料采用中国知网文献数据库中的"基础科学 ...
- WEB安全_基础入门_数据包拓展,安装Burp Suite,练习来源页伪造、浏览器信息伪造、HTTP动作练习、投票系统程序设计缺陷分析
数据包拓展 一.网站解析对应 1.简要网站搭建过程: 教学地址 2.涉及到的攻击层面? 源码,搭建平台,系统,网络层等 3.涉及到的安全问题? 目录,敏感文件,弱口令,IP以及域名 HTTP/S数据包 ...
- 弧焊机器人断弧_焊接机器人技术宝典之焊接技术缺陷分析及防治措施(1)
在工业生产上,焊接机器人得到普及使用,那么设备焊接时,需要了解哪些焊接缺陷?一篇焊接机器人技术宝典之焊接技术缺陷分析及防治措施告诉你想知道的. 一.焊接缺陷的分类 焊接缺陷的种类很多,按其在焊缝中所处 ...
- memcpy函数及其缺陷分析
函数介绍 函数原型 void *memcpy(void *destin, void *source, unsigned n); 参数 destin-- 指向用于存储复制内容的目标数组,类型强制转换为 ...
- mysql 5.7 缺点_MySQL · 特性分析 · MySQL 5.7 外部XA Replication实现及缺陷分析
MySQL 5.7 外部XA Replication实现及缺陷分析 MySQL 5.7增强了分布式事务的支持,解决了之前客户端退出或者服务器关闭后prepared的事务回滚和服务器宕机后binlog丢 ...
- 测试缺陷分析务实篇-转
测试缺陷分析务实篇 2008-08-28 作者:罗耀秋 来源:网络 摘要: 测试活动作为IT项目和产品开发一个重要的环节,通过发现产品或组件的缺陷,并反馈给开发组修复验证这些缺陷,从而在一定程度上 ...
- 统计_statistics_不同的人_大样本_分析_统计方法_useful ?
统计_statistics_不同的人_大样本_分析_ 转载于:https://www.cnblogs.com/books2read/p/11313825.html
- 高质量的缺陷分析:让自己少写 bug
阿里妹导读:缺陷分析做得好,bug 写得少.阿里资深技术专家和你分享如何进行高质量的缺陷分析,总结了 5 个要点,通过缺陷分析消除开发中的各种盲点,打造一个学习型的团队. 软件开发中的缺陷隐含着极高的 ...
- 分布分析和分组分析_如何通过群组分析对用户进行分组并获得可行的见解
分布分析和分组分析 数据分析 (DATA ANALYSIS) Being a regular at a restaurant is great. 乙 eing定期在餐厅是伟大的. When I sta ...
最新文章
- 快手推荐系统及 Redis 升级存储
- BottomNavigationBar使用详解
- 一个简易的webpack开发环境
- python3中urllib库的使用
- scikit-learn 梯度提升树(GBDT)调参小结
- NioEventLoopGroup的构造函数
- http://blog.csdn.net/rongdeguoqian/article/details/8035080
- LaTex在Linux下编写高质量的文档
- WebSphere Message Boker 中调用jar包
- 人,人,还是人-对需求、沟通、辅导、会议、改变、学习的狂想
- 从壹开始前后端分离 [ vue + .netcore 补充教程 ] 三十║ Nuxt实战:动态路由+同构...
- 修改完out不更新_CyclicBarrier 不就是比 CountDownLatch 多了个回环么?
- Qt QJsonObject QString QJsonArray 互转
- 程序员计算器使用方法介绍(快速计算十六进制、八进制的方法)
- 巴斯勒相机的ip掩码_子网掩码计算器让IP掩码计算不再难!
- bochs镜像java模拟器_bochs镜像下载
- win7控件无法安装怎么办【系统天地】
- 宏病毒的研究与实例分析01——基础篇
- 青蒿素发现者与两外籍科学家共获诺奖
- 移动端APP测试总结(二)
热门文章
- php array_diff_assoc,关于array_diff_assoc的详细介绍
- 解决 “计算机中丢失gdiplus.dll”
- 04【Verilog实战】SPI协议底层硬件接口设计(附源码RTL/TB)
- 游戏角色写实头发制作
- 一图看懂自然资源资金监测监管系统
- acer笔记本屏幕无法调节亮度问题
- 人家不卡学历,是自己真的没能力
- 数据传输性能与安全不能兼顾?Rambus安全方案“动静”两相宜
- Android面试题解答(结尾有彩蛋)
- vue嵌套路由,二级路由使用介绍