Effect of Profile-Guided Optimization
I built RecoverSegmentBenchmark with -fprofile-generate, ran it, rebuilt with -fprofile-use, then reran it. This brings about a 5% improvement in time for the benchmark for smaller object sizes and doesn't hurt times for larger object sizes.
object size | 64 | 128 | 256 | 512 | 1024 | 2048 | 8192 |
normal | 1535.88 | 1104.6 | 830.9 | 661.58 | 547.98 | 487.12 | 422.5 |
PGO | 1444.171875 | 1044.609375 | 780.734375 | 626.46875 | 551.875 | 480.515625 | 420.109375 |
% improvement | 5.97% | 5.43% | 6.04% | 5.31% | -0.71% | 1.36% | 0.57% |