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

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

ID:25350948

大小:49.00 KB

页数:4页

时间:2018-11-19

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

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

1、IntelC++9.0编译器优化效果测试论文.freelplasedtime,分别运行的次数为runcount1和runcount2,则切换时间为emplasedtime/(runcount1+runcount2-1)。以下几项与此类似。图1线程切换时间测试流程2.4.2高优先级线程抢先时间测试的基本步骤(1)创建两个不同优先级的线程,假定线程1的优先级高于线程2。(2)得到线程1的当前运行次数后,线程1将优先级降到低于线程2,线程1被线程2抢先。(3)得到线程2的当前运行次数后,线程2将优先级降到低于线程1,线程2被线程1抢先。(4)重复第2

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,得到当前运行次数后,立即释放信号量1。(6)重复第4和第5步,直到给出结束事件。(7)得到4至6步所花费的全部时间和两线程分别运行的次数。(8)计算线程对信号量的响应时间。2.4.

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

4、了转异常以及从异常恢复在使用了IntelC++编译器后,执行效率有了较大提高(约能提高1/3)外,其他几项在使用编译器前后几乎没有什么变化。从这里可以看出使用IntelC++编译器编译的代码对处理异常时的处理器能有优化效果,执行效率能有较大的提高;对于线程间的响应和切换却几乎达不到优化的效果。3数学函数运算测试前面提到的诸多应用领域,大量的数学运算是必需的。许多程序的主体就是大量的数学运算,运算速度对程序的执行速度也就会有决定性的影响。若能提高数学运算的速度,相应的程序的执行效率就将会得到提高。3.1测试项目测试项目包括常用的三角函数运算和一些

5、开方、次方、求模、对数等常规运算。毕竟大量的复杂的运算也是由以上运算组合的。3.2测试方法这里对每一项的测试都使用相同的测试方法,即让每种运算都运行固定的大量次数(这里采用百万次),得到运行前后的时间值,求出二者之间的差值,即是运行固定次数的时间。再对同一种运算使用IntelC++编译器进行编译前后的运行时间值进行比较即可。测试中进行运算的函数参数皆为双精度型,对于同一种运算在使用IntelC++编译器前后皆使用相同的参数,避免因带入参数的不同而影响对比判断。测试中对每一个测试项目皆进行十次重复测试,对得出的十个值取平均。3.3测试结果表2百万

6、次运算时间对比测试项目sincostansqrtpoodLog10未采用IntelC++编译器(s)0.1710.1390.2280.0460.3730.2620.120采用IntelC++编译器(s)0.0540.0970.0810.0310.1040.0490.0623.4测试结论从以上对各项数学函数运算所耗时间的测试中可以看出,IntelC++编译器对数学函数运算的优化效果是比较明显的。针对不同的运算,优化效果也不尽相同。对于同种运算在使用IntelC++编译器前后最差的也能将时间缩短至约原来的2/3,最好的能达到约原来的1/5。由此可以

7、看出,若将其用于涉及有较大运算量的程序中,必将较大地提高程序的处理速度,较好的满足我们在应用中对程序速度的要求。4总结从以上各项指标的对比测试中,可以得出在减少线程间的转换开销方面IntelC++编译器并不能发挥什么作用,对于线程本身转异常以及从异常恢复方面却能有较大的提高。考虑到异常和中断处理机制的相似性,我们也可推断出其对中断处理效率的提高也应该是有较大作用的。在数学函数运算方面,它能发挥出较大的作用,能较明显地提高数学函数运算的效率。因此我们认为经IntelC++编译器编译过的数学函数运算的代码能更为高效的执行,这对包含较多数学运算的应用

8、程序来讲,IntelC++编译器的使用将会对程序执行速度的提高提供帮助,从而满足相关应用领域对处理速度的要求。

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

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

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