diff -r f5c40ab9e233 README --- a/README Tue Aug 18 22:25:16 2015 -0700 +++ b/README Sun Aug 30 11:18:14 2015 +0300 @@ -45,6 +45,34 @@ (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 compilers, both GCC and Clang. If ran, +the "profile-opt" rule will do several steps. + +First, the entire Python directory is cleaned for temporary files that may +resulted in a previous compilation. + +Then, an instrumented version of the interpreter is built, using suitable +compiler flags for each flavor. 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 errors displayed at this step will not +adversely affect the results. + +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 ----------