使用Intel编译器(5)PGO(2)PGO性能的提升和一些tips

本文探讨了Intel编译器的Profile-Guided Optimization (PGO)技术,解释了PGO如何通过优化分支预测和指令cache性能来提升代码执行效率。通过实例分析了PGO如何处理switch分支问题,并提供了使用PGO时的注意事项,如避免在PGO过程中修改代码,以及选择代表性输入数据运行辅助可执行文件。同时建议在PGO的生成阶段使用默认选项,而在使用阶段应用优化选项。
摘要由CSDN通过智能技术生成
参考手册:

http://software.intel.com/sites/products/documentation/studio/composer/en-us/2011Update/compiler_c/index.htm


说明:本系列文章为个人笔记,如有不正确之处,请参考官方相关文档,如果错误发现,我会尽量更新修改。另外,以下内容不保证对于所有版本的编译器都正确,编译器的实现也可能有一些变化之处,具体参考官方文档。


更多说明请参考http://blog.csdn.net/gengshenghong/article/details/7034748中补充说明部分。


(1) PGO与分支预测的简单理解

PGO在性能提升方面,一个能工作很好的情况是代码有频繁执行的分支,而且分支在编译时难以预测。一个最常见的例子,就是错误处理的代码,一般而言,错误处理是为了防止代码出错,所以大部分的错误处理的分支,可能在大部分时候都是false。
为了理解这个问题,我以switch分支举例的代码片段如下:

void processError(int retcode)
{
	switch(retcode)
	{
		case 0:
			pr
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值