第六届全球数据库大赛:PolarDB TPC-C性能优化挑战赛方案分享(三)--编译优化


前言

接上篇,增加线程池后解决了线程数瓶颈,可以继续提升warehouse数来调优提分。编译优化也是个很重要且有效的性能优化方法,通用的编译时优化O3基本都做了,所以我主要使用了链接时优化和运行时优化这两种“比较少见”的编译优化方法,其实我之前也没有接触过,也是在参赛过程中现学现做的。


一、LTO链接时优化

关于编译优化,首先我们使用英特尔 oneAPI编译器来编译,icx比gcc性能要好,常用的是编译时优化,比如O3,在解题过程中我们发现还有链接时优化和运行时优化技术。
LTO 链接时优化是指链接阶段对程序进行全局优化,特别是跨模块的优化,例如内联、死代码消除等,优化整个程序的调用关系和数据访问模式。
在本地使用icx编译器结合LTO优化过程中遇到了一些问题:
1、
在这里插入图片描述
编译器报错:使用模板时未提供所有模板参数,增加编译选项-Wno-missing-template-arg-list-after-template-kw忽略该错误。这个报错在线上没有出现。
2、
在这里插入图片描述
然后又报错:不兼容的指令集,查询intel官网,用-xCORE-AVX512代替-march=emeraldrapids,可能跟本地CPU型号有关,这个报错线上也没有出现。
3、
在这里插入图片描述
.a文件没有执行ranlib命

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值