Staging
v0.5.1
https://github.com/python/cpython
Revision e5bdccc77b2a0da0b72f4a6ebbc2d9a1a9680dcd authored by Eric Smith on 18 August 2008, 14:27:38 UTC, committed by Eric Smith on 18 August 2008, 14:27:38 UTC
Optimization of str.format() for cases with str, unicode, int, long,
and float arguments.  This gives about 30% speed improvement for the
simplest (but most common) cases.  This patch skips the __format__
dispatch, and also avoids creating an object to hold the format_spec.

Unfortunately there's a complication in 2.6 with int, long, and float
because they always expect str format_specs.  So in the unicode
version of this optimization, just check for unicode objects.  int,
float, long, and str can be added later, if needed.
1 parent 8e439a1
Raw File
Tip revision: e5bdccc77b2a0da0b72f4a6ebbc2d9a1a9680dcd authored by Eric Smith on 18 August 2008, 14:27:38 UTC
Backport of r63826.
Tip revision: e5bdccc
build_pgo.bat
@echo off
rem A batch program to build PGO (Profile guided optimization) by first
rem building instrumented binaries, then running the testsuite, and
rem finally building the optimized code.
rem Note, after the first instrumented run, one can just keep on
rem building the PGUpdate configuration while developing.

setlocal
set platf=Win32

rem use the performance testsuite.  This is quick and simple
set job1=..\tools\pybench\pybench.py -n 1 -C 1 --with-gc
set path1=..\tools\pybench

rem or the whole testsuite for more thorough testing
set job2=..\lib\test\regrtest.py
set path2=..\lib

set job=%job1%
set clrpath=%path1%

:CheckOpts
if "%1"=="-p" (set platf=%2) & shift & shift & goto CheckOpts
if "%1"=="-2" (set job=%job2%) & (set clrpath=%path2%) & shift & goto CheckOpts

set PGI=%platf%-pgi
set PGO=%platf%-pgo

@echo on
rem build the instrumented version
call build -p %platf% -c PGInstrument

rem remove .pyc files, .pgc files and execute the job
%PGI%\python.exe rmpyc.py %clrpath%
del %PGI%\*.pgc
%PGI%\python.exe %job%

rem finally build the optimized version
if exist %PGO% del /s /q %PGO%
call build -p %platf% -c PGUpdate

back to top