Profile Guided Optimization¶
PGO is the process of adding probes to a compiled binary, running said binary, then using the run-time information to recompile the binary to (hopefully) make it faster.
How PGO Builds Work¶
The supported interface for invoking a PGO build is to add MOZ_PGO=1
to
configure flags and then build. e.g. in your mozconfig:
ac_add_options MOZ_PGO=1
Then:
$ ./mach build
This is roughly equivalent to:
#. Perform a build with *--enable-profile-generate* in $topobjdir/instrumented
#. Perform a run of the instrumented binaries with build/pgo/profileserver.py
#. Perform a build with *--enable-profile-use* in $topobjdir