intel c++ 9.0编译器优化效果测试

intel c++ 9.0编译器优化效果测试

ID:23655307

大小:51.00 KB

页数:6页

时间:2018-11-09

intel c++ 9.0编译器优化效果测试 _第1页
intel c++ 9.0编译器优化效果测试 _第2页
intel c++ 9.0编译器优化效果测试 _第3页
intel c++ 9.0编译器优化效果测试 _第4页
intel c++ 9.0编译器优化效果测试 _第5页
资源描述:

《intel c++ 9.0编译器优化效果测试 》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、IntelC++9.0编译器优化效果测试本文主要针对IntelC++9.0编译器在VisualC++6.0环境下对一些常用的功能性操作的优化作用进行了测试验证。主要从对采用编译器前后的程序运行时间进行比较来进行判断。测试范围主要集中于对线程的切换时间,转异常以及异常恢复时间,高优先级线程抢先时间以及信号量响应时间方面。此外,还对一些常用的数学函数的运行时间进行了测试比较。得出的测试数据和结论能对采用此编译器的用户有一定的参考价值和借鉴作用。关键词IntelC++,VisualC++,编译器,优化1引言当今许多计算机应用领域,如天气预报、信号处理以及军事上的弹道跟踪等,它们对程序处理速

2、度的要求都是相当高的。否则就会导致结果出现偏差或者失去其意义。要提高程序的运算速度,一般通过以下几个方面的改进措施来进行:(1)采用新的处理速度更快的硬件设备,如更快的CPU,更大的内存,以及更快的I/O设备等。但这显然会导致成本的大量增加,并非是一种适合于任何单位的实际的改进措施。(2)更加优化的程序设计方法,如在程序中引入多线程、并行等处理方法。这是一种比较有效的方法,当然对程序设计人员以及编程人员的水平有更高的要求。(3)采用一些优化软件,这也是一种简便有效的方法。另外如果和其他两种方法配合使用,对于一些要求大幅度提高处理速度的场合下,也将是非常有帮助的。采用优化型编译器就属于

3、上面介绍的第三种方法。处理器由于受数据相关、条件转移和资源冲突等原因,指令级并行度受到极大的限制。通过优化编译器对指令序列进行重组,以及采用软件与硬件相结合的方法处理数据相关、条件转移和资源冲突等,可以大大提高处理器的指令级并行度,使在一定时间内可发射尽可能多的指令数。另外,优化编译器还能根据处理器中先行指令窗口的大小,把没有数据相关、控制相关和功能部件冲突,或者冲突和相关比较少的指令调度到同一个先行指令窗口中,使这些指令超越它前面的指令先发射到操作部件中去,从而提高功能部件的利用率,这样就能进一步提高处理器的性能。一般来讲,实现程序的优化调度需要软件(主要是编译器)和硬件的共同结合

4、才能获得比较好的调度效果。IntelC++编译器作为一款专门针对Intel型处理器进行优化的编译器,它们二者的结合从理论上能实现优化调度,能对程序的执行效能有某些方面和一定程度的提高。测试中处理器应选择Intel系列的产品,实际使用的处理器为Intel奔腾4处理器(1.8GHZ),内存为256MB;操作系统考虑通用性和广泛性,为e,分别运行的次数为runcount1和runcount2,则切换时间为emplasedtime/(runcount1+runcount2-1)。以下几项与此类似。图1线程切换时间测试流程2.4.2高优先级线程抢先时间测试的基本步骤(1)创建两个不同优先级的线

5、程,假定线程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,得到

6、当前运行次数后,立即释放信号量1。(6)重复第4和第5步,直到给出结束事件。(7)得到4至6步所花费的全部时间和两线程分别运行的次数。(8)计算线程对信号量的响应时间。2.4.4转异常以及从异常恢复时间的测试步骤(1)创建运行一个线程。(2)在线程中给出一个异常。(3)异常处理中得出当前异常次数。(4)重复第2和第3步,直到给出结束事件。(5)得到2至4步所花费的全部时间和异常产生的总次数。(6)计算转异常以及从异常恢复的时间。2.5测试结果表1线程额外开销测试对比测试项目线程切换时间高优先级抢占时间信号量响应时间转异常以及从异常恢复时间未使用IntelC++编译器(us)1.122

7、.272.3814.59使用IntelC++编译器(us)1.092.262.379.212.6测试结论从以上四项的测试结果可以看出,除了转异常以及从异常恢复在使用了IntelC++编译器后,执行效率有了较大提高(约能提高1/3)外,其他几项在使用编译器前后几乎没有什么变化。从这里可以看出使用IntelC++编译器编译的代码对处理异常时的处理器能有优化效果,执行效率能有较大的提高;对于线程间的响应和切换却几乎达不到优化的效果。3数学函数运算测试前面提到的诸

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。