summaryrefslogtreecommitdiffstats
path: root/README
diff options
context:
space:
mode:
authorBrett Cannon <brett@python.org>2015-09-18 22:17:37 (GMT)
committerBrett Cannon <brett@python.org>2015-09-18 22:17:37 (GMT)
commit36df60fe75dee098827cc2743afdb78b9a335491 (patch)
tree29447debeb6e6fea28b907eaf965457c4811b2eb /README
parentf409c7cd1b8d3c365378252b76a804eab55e412e (diff)
parent7188a3efe07b9effdb760f3a96783f250214f0be (diff)
downloadcpython-36df60fe75dee098827cc2743afdb78b9a335491.zip
cpython-36df60fe75dee098827cc2743afdb78b9a335491.tar.gz
cpython-36df60fe75dee098827cc2743afdb78b9a335491.tar.bz2
Merge for issue #24915
Diffstat (limited to 'README')
-rw-r--r--README28
1 files changed, 28 insertions, 0 deletions
diff --git a/README b/README
index db0b093..d682a2b 100644
--- a/README
+++ b/README
@@ -46,6 +46,34 @@ For example:
(This will fail if you *also* built at the top-level directory.
You should do a "make clean" at the toplevel first.)
+If you need an optimized version of Python, you type "make profile-opt" in the
+top level directory. This will rebuild the interpreter executable using Profile
+Guided Optimization (PGO). For more details, see the section bellow.
+
+
+Profile Guided Optimization
+---------------------------
+
+PGO takes advantage of recent versions of the GCC or Clang compilers.
+If ran, the "profile-opt" rule will do several steps.
+
+First, the entire Python directory is cleaned of temporary files that
+may resulted in 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 and the binary resulted after 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 the interpreter execution. Note also that any output, both stdout
+and stderr, that may appear at this step is supressed.
+
+Finally, the last step is to rebuild the interpreter, using the information
+collected in the previous one. The end result will be a the Python binary
+that is optimized and suitable for distribution or production installation.
+
What's New
----------