![Intel C++ 9.0编译器优化效果测试_第1页](http://file4.renrendoc.com/view/e320cd608151e86af688b42fc3a73551/e320cd608151e86af688b42fc3a735511.gif)
![Intel C++ 9.0编译器优化效果测试_第2页](http://file4.renrendoc.com/view/e320cd608151e86af688b42fc3a73551/e320cd608151e86af688b42fc3a735512.gif)
![Intel C++ 9.0编译器优化效果测试_第3页](http://file4.renrendoc.com/view/e320cd608151e86af688b42fc3a73551/e320cd608151e86af688b42fc3a735513.gif)
![Intel C++ 9.0编译器优化效果测试_第4页](http://file4.renrendoc.com/view/e320cd608151e86af688b42fc3a73551/e320cd608151e86af688b42fc3a735514.gif)
![Intel C++ 9.0编译器优化效果测试_第5页](http://file4.renrendoc.com/view/e320cd608151e86af688b42fc3a73551/e320cd608151e86af688b42fc3a735515.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Intel C+ 9.0编译器优化效果测试摘要本文主要针对Intel+9.0编译器在Visual+6.0环境下对一些常用的功能性操作的优化作用进展了测试验证。主要从对采用编译器前后的程序运行时间进展比拟来进展判断。测试范围主要集中于对线程的切换时间,转异常以及异常恢复时间,高优先级线程抢先时间以及信号量响应时间方面。此外,还对一些常用的数学函数的运行时间进展了测试比拟。得出的测试数据和结论能对采用此编译器的用户有一定的参考价值和借鉴作用。关键词Intel+,Visual+,编译器,优化当今许多计算机应用领域,如天气预报、信号处理以及军事上的弹道跟踪等,它们对程序处理速度的要求都是相当高的。否那
2、么就会导致结果出现偏向或者失去其意义。要进步程序的运算速度,一般通过以下几个方面的改良措施来进展:1采用新的处理速度更快的硬件设备,如更快的PU,更大的内存,以及更快的I/设备等。但这显然会导致本钱的大量增加,并非是一种合适于任何单位的实际的改良措施。2更加优化的程序设计方法,如在程序中引入多线程、并行等处理方法。这是一种比拟有效的方法,当然对程序设计人员以及编程人员的程度有更高的要求。3采用一些优化软件,这也是一种简便有效的方法。另外假如和其他两种方法配合使用,对于一些要求大幅度进步处理速度的场合下,也将是非常有帮助的。采用优化型编译器就属于上面介绍的第三种方法。处理器由于受数据相关、条件转
3、移和资源冲突等原因,指令级并行度受到极大的限制。通过优化编译器对指令序列进展重组,以及采用软件与硬件相结合的方法处理数据相关、条件转移和资源冲突等,可以大大进步处理器的指令级并行度,使在一定时间内可发射尽可能多的指令数。另外,优化编译器还能根据处理器中先行指令窗口的大小,把没有数据相关、控制相关和功能部件冲突,或者冲突和相关比拟少的指令调度到同一个先行指令窗口中,使这些指令超越它前面的指令先发射到操作部件中去,从而进步功能部件的利用率,这样就能进一步进步处理器的性能。一般来讲,实现程序的优化调度需要软件主要是编译器和硬件的共同结合才能获得比拟好的调度效果。Intel+编译器作为一款专门针对In
4、tel型处理器进展优化的编译器,它们二者的结合从理论上能实现优化调度,能对程序的执行效能有某些方面和一定程度的进步。测试中处理器应选择Intel系列的产品,实际使用的处理器为Intel奔腾4处理器1.8GHZ,内存为256B;操作系统考虑通用性和广泛性,为indsXP系统,编程环境为Visual+6.0。针对越来越多的多线程编程应用,线程间的开销诸如线程间的切换时间、高优先级线程的抢先时间以及线程对信号量的响应时间等指标成为制约程序执行速度的一个重要方面。减少线程的额外开销时间对进步程序的运行速度是非常有意义的。2.1测试指标这里主要包括四个测试指标,1线程的切换时间。2高优先级线程的抢先时间
5、。3信号量响应时间。4线程转异常以及异常恢复时间。2.2测试方法测试中,启动的线程开场无条件循环运行。以对指标(1)的测试为例,循环中只进展运行次数累加和线程切换的操作,无其他附加操作,直至给出完毕事件,终止线程并给出线程的运行次数和时间。测试的计算结果都是在忽略线程本身的开销的情况下得出的,这里线程自身所花费的时间通过测试比拟占总花费的时间的比例是非常小的,对计算结果没有太大的影响。另外假设在线程中参加对线程本身开销的统计,将会引入其他的操作,同样会有一定的时间开销,仍然会有误差存在。测试中对每一个测试工程皆进展五次重复测试,对得出的五个值取平均。2.3测试流程这里的测试流程以对指标(1)的
6、测试为例以流程图的形式加以说明,后面三项的测试与此相似。2.4测试步骤2.4.1线程切换时间测试的根本步骤1创立两个一样优先级的线程1和2。2运行线程1得到线程1的当前运行次数后,立即切换到线程2。3运行线程2得到线程2的当前运行次数后,立即切换到线程1。4重复第2步和第3步,直到给出完毕事件。5得到2至4步所花费的全部时间和两线程分别的运行次数。6计算线程间的切换时间。这里设所花费的时间为eplasedtie,分别运行的次数为rununt1和rununt2,那么切换时间为eplasedtie/(rununt1+rununt2-1)。以下几项与此类似。图1线程切换时间测试流程2.4.2高优先级
7、线程抢先时间测试的根本步骤1创立两个不同优先级的线程,假定线程1的优先级高于线程2。2得到线程1的当前运行次数后,线程1将优先级降到低于线程2,线程1被线程2抢先。3得到线程2的当前运行次数后,线程2将优先级降到低于线程1,线程2被线程1抢先。4重复第2步和第3步,直到给出完毕事件。5得到2至4步所花费的全部时间和两线程分别运行的次数。6计算高优先级线程抢先时间。2.4.3信号量响应时间测试的根本步骤1创立信号量1和信号量2。2建有一样优先级的线程1和2,并分别恳求获得信号量1和信号量2。3释放一个信号量1。4线程1获得信号量1,得到当前运行次数后,立即释放信号量2。5线程2获得信号量2,得到
8、当前运行次数后,立即释放信号量1。6重复第4和第5步,直到给出完毕事件。7得到4至6步所花费的全部时间和两线程分别运行的次数。8计算线程对信号量的响应时间。2.4.4转异常以及从异常恢复时间的测试步骤1创立运行一个线程。2在线程中给出一个异常。3异常处理中得出当前异常次数。4重复第2和第3步,直到给出完毕事件。5得到2至4步所花费的全部时间和异常产生的总次数。6计算转异常以及从异常恢复的时间。2.5测试结果表1线程额外开销测试比照测试工程线程切换时间高优先级抢占时间信号量响应时间转异常以及从异常恢复时间未使用Intel+编译器us1.122.272.3814.59使用Intel+编译器(us)
9、1.092.262.379.212.6测试结论从以上四项的测试结果可以看出,除了转异常以及从异常恢复在使用了Intel+编译器后,执行效率有了较大进步约能进步1/3外,其他几项在使用编译器前后几乎没有什么变化。从这里可以看出使用Intel+编译器编译的代码对处理异常时的处理器能有优化效果,执行效率能有较大的进步;对于线程间的响应和切换却几乎达不到优化的效果。前面提到的诸多应用领域,大量的数学运算是必需的。许多程序的主体就是大量的数学运算,运算速度对程序的执行速度也就会有决定性的影响。假设能进步数学运算的速度,相应的程序的执行效率就将会得到进步。3.1测试工程测试工程包括常用的三角函数运算和一些
10、开方、次方、求模、对数等常规运算。毕竟大量的复杂的运算也是由以上运算组合的。3.2测试方法这里对每一项的测试都使用一样的测试方法,即让每种运算都运行固定的大量次数这里采用百万次,得到运行前后的时间值,求出二者之间的差值,即是运行固定次数的时间。再对同一种运算使用Intel+编译器进展编译前后的运行时间值进展比拟即可。测试中进展运算的函数参数皆为双精度型,对于同一种运算在使用Intel+编译器前后皆使用一样的参数,防止因带入参数的不同而影响比照判断。测试中对每一个测试工程皆进展十次重复测试,对得出的十个值取平均。3.3测试结果表2百万次运算时间比照测试工程sinstansqrtpfdLg10未采
11、用Intel+编译器(s)0.1710.1390.2280.0460.3730.2620.120采用Intel+编译器(s)0.0540.0970.0810.0310.1040.0490.0623.4测试结论从以上对各项数学函数运算所耗时间的测试中可以看出,Intel+编译器对数学函数运算的优化效果是比拟明显的。针对不同的运算,优化效果也不尽一样。对于同种运算在使用Intel+编译器前后最差的也能将时间缩短至约原来的2/3,最好的能到达约原来的1/5。由此可以看出,假设将其用于涉及有较大运算量的程序中,必将较大地进步程序的处理速度,较好的满足我们在应用中对程序速度的要求。从以上各项指标的比照测试中,可以得出在减少线程间的转换开销方面Intel+编译器并不能发挥什么作用,对于线程本身转异常以及从异常恢复方面却能有较大的进步。考虑到异常和中断处理机制的相似性,我们也可推断出其对中断处理效率的进步也应该是有较大作用的。在数学函数运算方面,它能发挥出较大的作用,能较明显地进步数学函数运算的效率。因此我们认为经Intel+编译器编译过的数学函数运算的代码能更为高效的执行,这对包含较多数学运算的应用程序来
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 贫困补助申请书 高中
- 户口本补办申请书范文
- 2025年安全产品项目指标评估报告
- 社交媒体服务暂停后的恢复
- 2024-2025学年上海市金山区高三(上)期末地理试卷(一模)
- DB2201-T 33-2023 梅花鹿布鲁氏菌病净化场管理规范
- 2024-2025学年山东省济宁市兖州区高二上学期11月期中考试物理试题(解析版)
- 线上直播广告位投放合同(2篇)
- 绿色环保合作投资协议书(2篇)
- 山东省滨州市2024-2025学年高一上学期期末模拟考试物理试题(二)(解析版)
- 酒店长包房租赁协议书范本
- 2 找春天 公开课一等奖创新教学设计
- 2025年江苏护理职业学院高职单招语文2018-2024历年参考题库频考点含答案解析
- 2025年江苏南京水务集团有限公司招聘笔试参考题库含答案解析
- 【道法】开学第一课 课件-2024-2025学年统编版道德与法治七年级下册
- 口腔门诊分诊流程
- 建筑工程施工安全管理课件
- 2025年春新外研版(三起)英语三年级下册课件 Unit2第1课时Startup
- 2025年上半年毕节市威宁自治县事业单位招考考试(443名)易考易错模拟试题(共500题)试卷后附参考答案
- 处方点评知识培训
- 2025年新合同管理工作计划
评论
0/150
提交评论