Files
sousa-gecko/build/docs/pgo.md
T
Sylvestre Ledru df0583fb15 Bug 2038819 - Convert build/docs RST to Markdown r=firefox-build-system-reviewers,sergesanspaille
Convert build/docs/*.rst (top-level and mozbuild/) to MyST-flavored
Markdown.

- Keep build/docs/mozbuild-symbols.rst as RST. The mozbuildsymbols
  custom directive emits nodes that confuse autosectionlabel when
  wrapped in a MyST eval-rst block.
- Keep build/docs/supported-configurations.rst as RST so that
  docs/contributing/build/supported.md can continue to use the MyST
  {include} directive on the original source.
- Refresh allowed-warnings globs to match the .md filenames for
  code-quality, contributing, crash-reporting, gtest, jsloader, js,
  overview, setup, and js/build.

Differential Revision: https://phabricator.services.mozilla.com/D304226
2026-07-04 10:18:26 +00:00

728 B

(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