Unverified Kaydet (Commit) 93f9a8a5 authored tarafından Gregory P. Smith's avatar Gregory P. Smith Kaydeden (comit) GitHub

bpo-24318: Rewrite the README PGO section. (#6863)

* bpo-24318: Rewrite the README PGO section.

Merged from a phone on an airplane. :)
üst 4e81296b
...@@ -93,25 +93,26 @@ Profile Guided Optimization ...@@ -93,25 +93,26 @@ Profile Guided Optimization
^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^
PGO takes advantage of recent versions of the GCC or Clang compilers. If used, PGO takes advantage of recent versions of the GCC or Clang compilers. If used,
either via ``configure --enable-optimizations`` above or by manually running either via ``configure --enable-optimizations`` or by manually running
``make profile-opt`` regardless of configure flags it will do several steps. ``make profile-opt`` regardless of configure flags, the optimized build
process will perform the following steps:
First, the entire Python directory is cleaned of temporary files that may have
resulted in a previous compilation. The entire Python directory is cleaned of temporary files that may have
resulted from a previous compilation.
Then, an instrumented version of the interpreter is built, using suitable
compiler flags for each flavour. Note that this is just an intermediary step. An instrumented version of the interpreter is built, using suitable compiler
The binary resulting from this step is not good for real life workloads as flags for each flavour. Note that this is just an intermediary step. The
it has profiling instructions embedded inside. binary resulting from this step is not good for real life workloads as it has
profiling instructions embedded inside.
After this instrumented version of the interpreter is built, the Makefile will
automatically run a training workload. This is necessary in order to profile After the instrumented interpreter is built, the Makefile will run a training
the interpreter execution. Note also that any output, both stdout and stderr, workload. This is necessary in order to profile the interpreter execution.
that may appear at this step is suppressed. Note also that any output, both stdout and stderr, that may appear at this step
is suppressed.
Finally, the last step is to rebuild the interpreter, using the information
collected in the previous one. The end result will be a Python binary that is The final step is to build the actual interpreter, using the information
optimized and suitable for distribution or production installation. collected from the instrumented one. The end result will be a Python binary
that is optimized; suitable for distribution or production installation.
Link Time Optimization Link Time Optimization
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment