下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第第页如何通过时钟精度提高代码性能测试?如何通过时钟精度提高代码性能测试?
发表于:2023-03-27来源::点击数:标签:代码性能测试时钟精度
要想真正有效地测试、优化程序性能——特别是为Windows服务器开发的多线程程序,操作系统提供的标准时钟是不够的,必须使用解析度更高的时钟。本文介绍了如何访问处理器的十亿分之一秒级别的时钟,极大地提高代码性能测试的速度和精度。一、获取计时数
要想真正有效地测试、优化程序性能——特别是为Windows服务器开发的多线程程序,操作系统提供的标准时钟是不够的,必须使用解析度更高的时钟。本文介绍了如何访问处理器的十亿分之一秒级别的时钟,极大地提高代码性能测试的速度和精度。一、获取计时数据
和其他Windows服务器一样,在Windows2023Server上最能发挥性能优势的是多线程程序。Windows2023Server支持各种多处理器系统,同时也能在单处理器的P4系统上运行。对于单处理器P4系统,Windows2023Server将发挥出Intel超线程技术提供的各种硬件线程执行引擎的优势。
开发服务器应用的人都知道,之所以要开发并行程序,真正的原因只有一个——性能。然而,众所周知,性能改善是一个比较模糊的目标,因为多线程代码的性能通常只能靠经验估计。在单线程程序中,性能改进程度一般可以精确地预知,例如减少了多少指令和延迟较高的操作,但多线程代码不同,Windows平台中线程调度是不确定的,也就是说,在Windows中应用程序可以要求调度程序运行线程,但调度程序何时(是否)运行线程则远远超出了应用程序代码的控制范围。
在测试性能时,开发者很快会遇到一个问题,这就是Windows内建的标准时钟实在不够精确,其可靠测量事件时间的解析度很难高于一秒,这样,要确定一个代码片段是否真正得到优化就很困难了。如果一定要用Windows的标准时钟进行测试,必须利用循环让代码运行几百万次,才能获得有效的时间数据。绝大多数情况下,使用这类循环意味着修改应用程序。
其实,还有更好的办法,这就是Win32高解析度时钟,涉及的函数有两个:QueryPerformanceCount(),QueryPerformanceFrequency()。在Intel系统中,从PII开始,这些函数依赖于Pentium芯片内建的一个计数器。当一个Intel系统启动时,一个64位的寄存器跟踪着消逝的时钟周期,这个计数器提供了解析度极高的计时设备。
整个64位寄存器都要用到。32bit的整数大约能计数20亿,对于当前每秒运行20-30亿个周期的处理器,32bit的计数器会在一秒或更少的时间内溢出,64bit的计数器则能容纳这些秒数的20亿倍,按20亿秒计算就是约63年——可以相信,这已经远远超出测量任何程序的要求了。
要对一个事件进行计时,只需获得事件开始之前、结束之后的时钟计数。下面的代码不依赖于Win32(即,从C/C++直接访问),稍后我们再看看操作系统提供的函数。我们首先定义一个数据结构,然后再来看填写该结构的代码:
typedefstruct_BinInt32{__int32i32[2];
}
BigInt32;typedefstruct_BigInt64{__int64i64
;
}BigInt64;typedefunion_bigInt{BigInt3
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026届河北省廊坊市中考化学模拟试卷(含答案解析)
- 初中八年级历史《中国特色社会主义建设时期的科技与文化成就》导学案
- 八年级语文古诗词阅读专题复习教学设计(期末备考·新教材统编版)
- 初中八年级历史《科教文体事业的蓬勃发展》教学设计
- 初中八年级历史上册(统编版)第二单元知识清单:洋务运动与边疆危机
- 第三单元黑土传情-欣赏《我的家乡多美好》课件人音版(2012)初中音乐九年级下册
- 《无刷双馈电机:绕线转子结构、电磁耦合与控制策略》教学设计
- 八年级道德与法治·大单元时政融合导学案-国安砺剑·复兴有我
- 《期权定价模型与敏感性分析》教学设计
- 安全规范标语集锦讲解
- 脊柱手术术后康复护理指南
- 广东省深圳市龙岗区2024-2025学年上学期八年级物理期末学业质量监测试题(含答案)
- 园艺植物病虫防治参考题库
- 贵州国企招聘2025榕江县粮油购销有限公司招聘笔试历年常考点试题专练附带答案详解试卷3套
- 【《益智游戏在大班幼儿教育中的运用探究》5200字】
- 2025年长沙市事业单位招聘考试教师地理学科专业知识试题解析
- 北京市西城区2024-2025学年三年级下学期期末英语试题(含答案含听力原文无听力音频)
- 江苏科技大学《大学物理A》2025 - 2026学年第一学期期末试卷(A卷)
- 江苏省常州市2024-2025学年八年级下学期期末语文试题(含答案)
- 九年级复习辅导经验交流活动方案
- GB/T 45981.1-2025重型燃气轮机用大型铸锻件第1部分:钢质自由锻件
评论
0/150
提交评论