[Python-Dev] Profile Guided Optimization active by-default

R. David Murray rdmurray at bitdance.com
Tue Aug 25 18:09:43 CEST 2015


On Tue, 25 Aug 2015 15:59:23 -0000, Brett Cannon <brett at python.org> wrote:
> On Mon, 24 Aug 2015 at 23:19 Nick Coghlan <ncoghlan at gmail.com> wrote:
> 
> > On 25 August 2015 at 05:52, Gregory P. Smith <greg at krypto.org> wrote:
> > > What we tested and decided to use on our own builds after benchmarking at
> > > work was to build with:
> > >
> > > make profile-opt PROFILE_TASK="-m test.regrtest -w -uall,-audio -x
> > test_gdb
> > > test_multiprocessing"
> > >
> > > In general if a test is unreliable or takes an extremely long time,
> > exclude
> > > it for your sanity.  (i'd also kick out test_subprocess on 2.7; we
> > replaced
> > > subprocess with subprocess32 in our build so that wasn't an issue)
> >
> > Having the "production ready" make target be "make profile-opt"
> > doesn't strike me as the most intuitive thing in the world.
> >
> > I agree we want the "./configure && make" sequence to be oriented
> > towards local development builds rather than highly optimised
> > production ones, so perhaps we could provide a "make production"
> > target that enables PGO with an appropriate training set from
> > regrtest, and also complains if "--with-pydebug" is configured?
> >
> 
> That's an interesting idea for a make target. It might help get the
> visibility of PGO builds higher as well.

If we did want to make PGO the default, having a 'make develop' target
would also be an option.  We already have a precedent for that in the
'setup.py develop' command.

--David


More information about the Python-Dev mailing list