选项 -fipa-reorder-fields
内存空间布局优化之结构体重排优化,根据结构体成员所占空间大小,将其按从大到小的顺序重新排列,以减少因边界对齐引入的padding,从而降低结构体整体内存占用,并提高cache的命中率。 例如,将以下结构体
1 2 3 4 5 6 7 8 9 10 11 12 | struct S { double a; int b; double c; double d; short e; double f; double g; double h; double i; }; |
经过重排后转化为:
1 2 3 4 5 6 7 8 9 10 11 12 | struct S.reorder { double a; double i; double c; double d; double f; double g; double h; int b; short e; } |
适用方法
在选项中加入:
1 | -O3 -flto -flto-partition=one -fipa-reorder-fields |
-fipa-reorder-fields选项,需要在-O3 -flto -flto-partition=one同时开启的基础上才启用。
SPEC性能提升效果:SPEC CPU 2017 intrate 505.mcf子项性能提升20%。
父主题: 静态编译优化