Profile-Guided Optimization (PGO) evaluation results #1384
zamazan4ik
started this conversation in
Ideas
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Hi!
I did a lot of Profile-Guided Optimization (PGO) benchmarks recently on different kinds of software - all currently available results are located at https://github.com/zamazan4ik/awesome-pgo . According to the tests, PGO usually helps with achieving better performance. That's why testing PGO would be a good idea for
fd
as well. I did some benchmarks on my local machine and want to share my results.Test environment
fd
from themaster
branch (commit3884f054f19603b64aef3f2898f6125e15599229
)Test workload
As a test scenario, I used https://github.com/sharkdp/fd-benchmarks/blob/master/cold-cache-simple-pattern.sh. All runs are performed on the same hardware, operating system, and the same background workload (as much as I can guarantee). The measurements were performed with
hyperfine
. The PGO optimization is done with cargo-pgo. Warmup forhyperfine
is 3,min-runs
is 5.Results
Here are the results (PGO-optimized binary (first) compared to Release binary (second)):
Here I want to highlight the consistent improvement to the
User
time. So, PGO makes some small improvements at least in the project's benchmark, and could be worth integrating into the project's build scripts.Possible further steps
I can suggest to do the following things:
fd
documentation (maybe somewhere in the README file) about building with PGO if you think it's worth it for the project. In this case, users and maintainers who build their ownfd
binaries will be aware of PGO as an additional way to optimize the projectBeta Was this translation helpful? Give feedback.
All reactions