pathfinding icon indicating copy to clipboard operation
pathfinding copied to clipboard

Profile-Guided Optimization (PGO) results

Open zamazan4ik opened this issue 1 year ago • 0 comments

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 commit b8e156ef782828cc6992f499f0596f05ed6c2946
  • 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.

zamazan4ik avatar Jan 10 '24 07:01 zamazan4ik