C++与汇编ASM代码优化方法-创新互联
循环优化:
创新互联公司-专业网站定制、快速模板网站建设、高性价比宜昌网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式宜昌网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖宜昌地区。费用合理售后完善,十多年实体公司更值得信赖。1、提取重复操作
2、减少函数调用
3、避免内存读写,用局部变量保存计算的中间值,循环结束后再付给全局变量 ”dest”
4、循环展开,减少数据依赖
注意⚠️:虽然循环展开了,但是两次运算间仍然存在直接的数据依赖,导致流水线的并行能力仍然没有发挥出来;这种情况可能导致程序并无太大的优化效果
5、提高并行性,消除数据依赖
例如🔥:为了让下次运算不再需要上次运算的结果,我们可以将整个运算分为两个并行分支,用两个局部变量分别累加奇数项和偶数项,最后再合并到一起
6、重结合变换
例如🔥:依据加法和乘法的结合律,在循环展开的基础上,重新结合三个数的运算顺序,就可以实现性能提高。
注意⚠️:上述优化方法编译器内部已经实现,但是不一定会进行优化,故而需要程序猿最好手动实现,另外多路并行并不是越多越好,因为寄存器数量有限;
实战经验:
1、减少指令操作,比如不必要的mov,ld,st操作等
2、读写分离,比如在C++里面嵌入汇编时,asm操作数中有可读可写,即“+”的操作数,注意能读写分离就读写分离,可以减少不必要的mov,因为编译器无法除去冗余
优化过程:
1、若是产量方向的优化,那么第一看资源是否使用完,未使用完第一步提高并发量,尽量先将资源利用完;
2、在资源使用完的条件下考虑逻辑层的优化,这个是最难的;
3、最后考虑代码层面的优化,当然,这一步的优化可以和第二步的优化顺序做调整,不计较先后;
4、总体来说,一般第一步和第二步优化,如果能够优化,一般性能提升会比较多;
注意⚠️:主要的是找到性能瓶颈,然后对症下药
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
网页题目:C++与汇编ASM代码优化方法-创新互联
分享网址:http://azwzsj.com/article/picod.html