[Python-3000] PyBench results of PGO build

Christian Heimes lists at cheimes.de
Thu Nov 22 11:27:23 CET 2007


This morning I've fixed the PGO builds of PCbuild9 and compared a PGO
build with a vanilla build. The PGO builds is about 10% faster. I've
used a PyBench and an unit test run as profiling data.

Christian

-------------------------------------------------------------------------------
PYBENCH 2.0 (vanilla build)
-------------------------------------------------------------------------------
* using CPython 3.0a1+ (py3k:59110, Nov 22 2007, 05:42:09) [MSC v.1500
32 bit (Intel)]
* system check interval set to maximum: 2147483647
* using timer: time.clock

Calibrating tests. Please wait... done.

Running 3 round(s) of the suite at warp factor 10:

* Round 1 done in 12.366 seconds.
* Round 2 done in 12.358 seconds.
* Round 3 done in 12.320 seconds.

-------------------------------------------------------------------------------
Benchmark: 2007-11-22 11:18:46
-------------------------------------------------------------------------------

    Rounds: 3
    Warp:   10
    Timer:  time.clock

    Machine Details:
       Platform ID:    Windows-XP-5.1.2600
       Processor:

    Python:
       Implementation: CPython
       Executable:     c:\dev\python\py3k\PCbuild9\python.exe
       Version:        3.0.0
       Compiler:       MSC v.1500 32 bit (Intel)
       Bits:           32bit
       Build:          Nov 22 2007 05:42:09 (#py3k:59110)
       Unicode:        None


Test                             minimum  average  operation  overhead
-------------------------------------------------------------------------------
          BuiltinFunctionCalls:    159ms    163ms    0.32us    0.579ms
           BuiltinMethodLookup:    190ms    199ms    0.19us    0.593ms
                 CompareFloats:    146ms    149ms    0.12us    0.680ms
         CompareFloatsIntegers:    514ms    522ms    0.58us    0.053ms
               CompareIntegers:    227ms    232ms    0.13us    0.915ms
        CompareInternedStrings:    295ms    301ms    0.20us    2.643ms
                  CompareLongs:    156ms    160ms    0.15us    0.589ms
                CompareStrings:    200ms    204ms    0.20us    2.052ms
                 ConcatStrings:    403ms    411ms    0.82us    0.985ms
               CreateInstances:    274ms    312ms    2.78us    0.849ms
            CreateNewInstances:    203ms    204ms    2.42us    0.647ms
       CreateStringsWithConcat:    519ms    594ms    0.59us    1.213ms
                  DictCreation:    139ms    151ms    0.38us    1.011ms
             DictWithFloatKeys:    360ms    366ms    0.41us    1.263ms
           DictWithIntegerKeys:    120ms    135ms    0.11us    1.755ms
            DictWithStringKeys:    147ms    154ms    0.13us    1.711ms
                      ForLoops:    150ms    156ms    6.23us    0.072ms
                    IfThenElse:    157ms    162ms    0.12us    1.271ms
                   ListSlicing:    214ms    241ms   17.24us    0.140ms
                NestedForLoops:    197ms    200ms    0.13us   -0.002ms
          NormalClassAttribute:    362ms    365ms    0.30us    0.832ms
       NormalInstanceAttribute:    282ms    284ms    0.24us    1.046ms
           PythonFunctionCalls:    199ms    201ms    0.61us    0.503ms
             PythonMethodCalls:    271ms    275ms    1.22us    0.301ms
                     Recursion:    336ms    364ms    7.28us    0.860ms
                  SecondImport:    286ms    288ms    2.88us    0.340ms
           SecondPackageImport:    290ms    294ms    2.94us    0.339ms
         SecondSubmoduleImport:    399ms    408ms    4.08us    0.343ms
       SimpleComplexArithmetic:    205ms    209ms    0.24us    0.678ms
        SimpleDictManipulation:    293ms    332ms    0.28us    0.850ms
         SimpleFloatArithmetic:    181ms    183ms    0.14us    1.056ms
      SimpleIntFloatArithmetic:    271ms    275ms    0.21us    0.419ms
       SimpleIntegerArithmetic:    260ms    269ms    0.20us    1.013ms
        SimpleListManipulation:    144ms    170ms    0.15us    1.081ms
          SimpleLongArithmetic:    170ms    177ms    0.27us    0.532ms
                    SmallLists:    287ms    316ms    0.46us    0.625ms
                   SmallTuples:    257ms    261ms    0.48us    0.760ms
         SpecialClassAttribute:    368ms    382ms    0.32us    0.892ms
      SpecialInstanceAttribute:    292ms    295ms    0.25us    0.925ms
                StringMappings:    571ms    578ms    2.29us    0.893ms
              StringPredicates:    243ms    250ms    0.36us    4.530ms
                 StringSlicing:    474ms    487ms    0.87us    1.607ms
                     TryExcept:     84ms     85ms    0.04us    1.256ms
                TryRaiseExcept:    272ms    280ms    4.37us    0.710ms
                  TupleSlicing:    257ms    306ms    1.17us    0.088ms
-------------------------------------------------------------------------------
Totals:                          11824ms  12348ms



-------------------------------------------------------------------------------
PYBENCH 2.0 (PGO build)
-------------------------------------------------------------------------------
* using CPython 3.0a1+ (py3k:59110M, Nov 22 2007, 11:04:21) [MSC v.1500
32 bit (Intel)]
* system check interval set to maximum: 2147483647
* using timer: time.clock

Calibrating tests. Please wait... done.

Running 3 round(s) of the suite at warp factor 10:

* Round 1 done in 10.833 seconds.
* Round 2 done in 11.230 seconds.
* Round 3 done in 11.058 seconds.

-------------------------------------------------------------------------------
Benchmark: 2007-11-22 11:17:59
-------------------------------------------------------------------------------

    Rounds: 3
    Warp:   10
    Timer:  time.clock

    Machine Details:
       Platform ID:    Windows-XP-5.1.2600
       Processor:

    Python:
       Implementation: CPython
       Executable:     c:\dev\python\py3k\PCbuild9\Win32-pgo\python.exe
       Version:        3.0.0
       Compiler:       MSC v.1500 32 bit (Intel)
       Bits:           32bit
       Build:          Nov 22 2007 11:04:21 (#py3k:59110M)
       Unicode:        None


Test                             minimum  average  operation  overhead
-------------------------------------------------------------------------------
          BuiltinFunctionCalls:    139ms    142ms    0.28us    0.414ms
           BuiltinMethodLookup:    188ms    196ms    0.19us    0.479ms
                 CompareFloats:    147ms    148ms    0.12us    0.566ms
         CompareFloatsIntegers:    408ms    414ms    0.46us    0.389ms
               CompareIntegers:    127ms    141ms    0.08us    0.413ms
        CompareInternedStrings:    224ms    226ms    0.15us    2.195ms
                  CompareLongs:    120ms    121ms    0.12us    0.397ms
                CompareStrings:    163ms    169ms    0.17us    1.543ms
                 ConcatStrings:    406ms    434ms    0.87us    1.382ms
               CreateInstances:    237ms    239ms    2.13us    0.739ms
            CreateNewInstances:    179ms    181ms    2.15us    0.549ms
       CreateStringsWithConcat:    483ms    573ms    0.57us    1.413ms
                  DictCreation:    160ms    163ms    0.41us    0.542ms
             DictWithFloatKeys:    351ms    360ms    0.40us    1.014ms
           DictWithIntegerKeys:    117ms    120ms    0.10us    1.399ms
            DictWithStringKeys:    145ms    165ms    0.14us    0.637ms
                      ForLoops:    134ms    153ms    6.11us    0.059ms
                    IfThenElse:    124ms    130ms    0.10us    1.133ms
                   ListSlicing:    237ms    253ms   18.04us    0.118ms
                NestedForLoops:    150ms    179ms    0.12us   -0.002ms
          NormalClassAttribute:    376ms    391ms    0.33us    0.900ms
       NormalInstanceAttribute:    257ms    283ms    0.24us    0.743ms
           PythonFunctionCalls:    201ms    203ms    0.62us    0.437ms
             PythonMethodCalls:    247ms    247ms    1.10us    0.245ms
                     Recursion:    310ms    314ms    6.27us    0.844ms
                  SecondImport:    262ms    284ms    2.84us    0.274ms
           SecondPackageImport:    275ms    297ms    2.97us    0.262ms
         SecondSubmoduleImport:    396ms    404ms    4.04us    0.280ms
       SimpleComplexArithmetic:    157ms    166ms    0.19us    0.525ms
        SimpleDictManipulation:    283ms    286ms    0.24us    0.751ms
         SimpleFloatArithmetic:    124ms    134ms    0.10us    0.830ms
      SimpleIntFloatArithmetic:    219ms    227ms    0.17us    0.877ms
       SimpleIntegerArithmetic:    220ms    250ms    0.19us    0.401ms
        SimpleListManipulation:    141ms    144ms    0.12us    0.868ms
          SimpleLongArithmetic:    151ms    154ms    0.23us    0.408ms
                    SmallLists:    266ms    290ms    0.43us    0.955ms
                   SmallTuples:    220ms    225ms    0.42us    0.642ms
         SpecialClassAttribute:    359ms    408ms    0.34us    0.749ms
      SpecialInstanceAttribute:    257ms    261ms    0.22us    0.782ms
                StringMappings:    348ms    351ms    1.39us    0.740ms
              StringPredicates:    194ms    205ms    0.29us    4.242ms
                 StringSlicing:    430ms    438ms    0.78us    1.398ms
                     TryExcept:     69ms     72ms    0.03us    1.067ms
                TryRaiseExcept:    256ms    267ms    4.18us    0.544ms
                  TupleSlicing:    224ms    230ms    0.88us    0.084ms
-------------------------------------------------------------------------------
Totals:                          10485ms  11041ms





More information about the Python-3000 mailing list