Source code
Revision control
Copy as Markdown
Other Tools
(pgo)=
# Profile Guided Optimization
{abbr}`PGO (Profile Guided Optimization)` 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
```