Description
Hi!
In this issue I want to report Profile-Guided Optimization (PGO) results on pathfinding algorithms performance. I performed some tests and want to share my results here.
Test environment
- Fedora 39
- Linux kernel 6.6.9
- AMD Ryzen 9 5900x
- 48 Gib RAM
- SSD Samsung 980 Pro 2 Tib
- Compiler - Rustc 1.75
- NativeDB version: the latest for now from the
main
branch on commitb8e156ef782828cc6992f499f0596f05ed6c2946
- Disabled Turbo boost (for more stable results across benchmark runs)
Benchmark
For benchmark purposes, I use this benchmark with cargo bench
command. For PGO optimization I use cargo-pgo tool. The same benchmark suite was used for the PGO training phase built with cargo pgo bench
. PGO optimized results I got with cargo pgo optimize bench
.
Results
I got the following results:
- Release: https://gist.github.com/zamazan4ik/8016c94ef4e48bea6f179231bbbe9b68
- PGO optimized compared to Release: https://gist.github.com/zamazan4ik/fb76cddbe0028b757c4947775ac42133
- (just for reference) PGO instrumentation compared to Release: https://gist.github.com/zamazan4ik/95338d9c54597de5ef5c7d86f8990c9e
At least according to the results above, PGO helps with achieving better overall performance with pathfinding algorithms. However, in one case, "separate_components", there is a huge regression - it needs to be investigated deeper.
Please treat the issue just as a benchmark report - not like an actual issue. I created it here just because the discussions are not enabled.