This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author vstinner
Recipients brett.cannon, pitrou, r.david.murray, vstinner, yselivanov
Date 2016-04-19.10:52:20
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1461063141.34.0.82021694339.issue26058@psf.upfronthosting.co.za>
In-reply-to
Content
pybench results on dict_version-8.patch with CPU isolation: http://haypo-notes.readthedocs.org/microbenchmark.html

As usual, I'm very skeptical on the pybench results which almost look like noise. I don't understand how my change can make any operation *faster*, whereas some benchmarks are faster with the patch...

Dict microbenchmarks:

           DictCreation:    38ms    36ms   +4.8%    39ms    37ms   +3.9%
      DictWithFloatKeys:    40ms    40ms   -0.8%    40ms    40ms   -0.4%
    DictWithIntegerKeys:    33ms    31ms   +7.2%    33ms    31ms   +7.6%
     DictWithStringKeys:    29ms    28ms   +0.4%    29ms    29ms   +0.7%
 SimpleDictManipulation:    59ms    59ms   -0.4%    59ms    59ms   -0.4%

Full output:

$ ./python.version Tools/pybench/pybench.py -f pybench.version
$ ./python.orig Tools/pybench/pybench.py -f pybench.orig
$ ./python.orig Tools/pybench/pybench.py -s pybench.version -c pybench.orig 

-------------------------------------------------------------------------------
PYBENCH 2.1
-------------------------------------------------------------------------------
* using CPython 3.6.0a0 (default:e281a57d5b29, Apr 19 2016, 12:30:36) [GCC 5.3.1 20151207 (Red Hat 5.3.1-2)]
* disabled garbage collection
* system check interval set to maximum: 2147483647
* using timer: time.perf_counter
* timer: resolution=1e-09, implementation=clock_gettime(CLOCK_MONOTONIC)

-------------------------------------------------------------------------------
Benchmark: pybench.version
-------------------------------------------------------------------------------

    Rounds: 10
    Warp:   10
    Timer:  time.perf_counter

    Machine Details:
       Platform ID:    Linux-4.4.4-301.fc23.x86_64-x86_64-with-fedora-23-Twenty_Three
       Processor:      x86_64
    
    Python:
       Implementation: CPython
       Executable:     /home/haypo/prog/python/default/python.version
       Version:        3.6.0a0
       Compiler:       GCC 5.3.1 20151207 (Red Hat 5.3.1-2)
       Bits:           64bit
       Build:          Apr 19 2016 12:29:16 (#default:e281a57d5b29+)
       Unicode:        UCS4


-------------------------------------------------------------------------------
Comparing with: pybench.orig
-------------------------------------------------------------------------------

    Rounds: 10
    Warp:   10
    Timer:  time.perf_counter

    Machine Details:
       Platform ID:    Linux-4.4.4-301.fc23.x86_64-x86_64-with-fedora-23-Twenty_Three
       Processor:      x86_64
    
    Python:
       Implementation: CPython
       Executable:     /home/haypo/prog/python/default/python.orig
       Version:        3.6.0a0
       Compiler:       GCC 5.3.1 20151207 (Red Hat 5.3.1-2)
       Bits:           64bit
       Build:          Apr 19 2016 12:30:36 (#default:e281a57d5b29)
       Unicode:        UCS4


Test                             minimum run-time        average  run-time
                                 this    other   diff    this    other   diff
-------------------------------------------------------------------------------
          BuiltinFunctionCalls:    49ms    50ms   -1.3%    49ms    50ms   -1.2%
           BuiltinMethodLookup:    26ms    26ms   -0.8%    26ms    27ms   -1.2%
                 CompareFloats:    29ms    30ms   -2.0%    29ms    30ms   -1.9%
         CompareFloatsIntegers:    39ms    39ms   +1.4%    39ms    39ms   +1.5%
               CompareIntegers:    43ms    43ms   -1.1%    43ms    43ms   -1.1%
        CompareInternedStrings:    28ms    28ms   -0.2%    28ms    28ms   -0.3%
                  CompareLongs:    25ms    25ms   +2.8%    25ms    25ms   +2.9%
                CompareStrings:    26ms    27ms   -0.8%    26ms    27ms   -1.6%
    ComplexPythonFunctionCalls:    44ms    44ms   -1.6%    44ms    45ms   -1.6%
                 ConcatStrings:    35ms    33ms   +6.4%    35ms    33ms   +6.1%
               CreateInstances:    49ms    48ms   +2.6%    50ms    49ms   +1.8%
            CreateNewInstances:    37ms    36ms   +2.5%    37ms    36ms   +2.2%
       CreateStringsWithConcat:    65ms    63ms   +3.3%    66ms    64ms   +2.9%
                  DictCreation:    38ms    36ms   +4.8%    39ms    37ms   +3.9%
             DictWithFloatKeys:    40ms    40ms   -0.8%    40ms    40ms   -0.4%
           DictWithIntegerKeys:    33ms    31ms   +7.2%    33ms    31ms   +7.6%
            DictWithStringKeys:    29ms    28ms   +0.4%    29ms    29ms   +0.7%
                      ForLoops:    25ms    25ms   -0.4%    26ms    26ms   -0.3%
                    IfThenElse:    37ms    35ms   +3.3%    37ms    36ms   +3.0%
                   ListSlicing:    39ms    38ms   +0.3%    39ms    39ms   +0.0%
                NestedForLoops:    40ms    40ms   +0.1%    40ms    40ms   -0.0%
      NestedListComprehensions:    41ms    42ms   -0.2%    42ms    42ms   -0.9%
          NormalClassAttribute:    82ms    78ms   +4.0%    82ms    79ms   +3.8%
       NormalInstanceAttribute:    43ms    42ms   +1.9%    44ms    43ms   +1.8%
           PythonFunctionCalls:    40ms    42ms   -5.0%    41ms    43ms   -4.8%
             PythonMethodCalls:    51ms    52ms   -1.1%    51ms    52ms   -0.8%
                     Recursion:    69ms    72ms   -4.8%    69ms    73ms   -4.7%
                  SecondImport:    37ms    38ms   -0.1%    37ms    38ms   -0.1%
           SecondPackageImport:    40ms    39ms   +1.9%    40ms    39ms   +1.6%
         SecondSubmoduleImport:    96ms    97ms   -1.0%    96ms    97ms   -1.1%
       SimpleComplexArithmetic:    28ms    27ms   +1.7%    29ms    28ms   +1.9%
        SimpleDictManipulation:    59ms    59ms   -0.4%    59ms    59ms   -0.4%
         SimpleFloatArithmetic:    27ms    27ms   +2.2%    27ms    27ms   +2.3%
      SimpleIntFloatArithmetic:    31ms    31ms   +1.6%    31ms    31ms   +1.7%
       SimpleIntegerArithmetic:    31ms    31ms   +0.8%    31ms    31ms   +0.5%
      SimpleListComprehensions:    33ms    33ms   +0.2%    33ms    33ms   +0.4%
        SimpleListManipulation:    31ms    31ms   -0.0%    32ms    32ms   -1.5%
          SimpleLongArithmetic:    21ms    22ms   -2.5%    22ms    22ms   -1.8%
                    SmallLists:    43ms    44ms   -3.3%    43ms    44ms   -3.5%
                   SmallTuples:    51ms    53ms   -2.9%    52ms    54ms   -3.6%
         SpecialClassAttribute:    80ms    81ms   -1.0%    80ms    81ms   -1.1%
      SpecialInstanceAttribute:    42ms    42ms   -0.5%    42ms    42ms   -0.7%
                StringMappings:    87ms    86ms   +0.8%    87ms    86ms   +0.9%
              StringPredicates:    53ms    53ms   +0.3%    53ms    53ms   +0.2%
                 StringSlicing:    48ms    49ms   -1.3%    48ms    49ms   -0.8%
                     TryExcept:    25ms    25ms   +0.6%    25ms    25ms   +0.7%
                    TryFinally:    35ms    35ms   +1.1%    36ms    35ms   +0.7%
                TryRaiseExcept:    13ms    13ms   -0.5%    13ms    13ms   -0.6%
                  TupleSlicing:    46ms    46ms   +0.2%    48ms    50ms   -3.2%
                   WithFinally:    54ms    53ms   +0.8%    54ms    54ms   +0.7%
               WithRaiseExcept:    44ms    43ms   +2.8%    44ms    43ms   +2.7%
-------------------------------------------------------------------------------
Totals:                          2156ms  2150ms   +0.3%  2171ms  2169ms   +0.1%

(this=pybench.version, other=pybench.orig)
History
Date User Action Args
2016-04-19 10:52:21vstinnersetrecipients: + vstinner, brett.cannon, pitrou, r.david.murray, yselivanov
2016-04-19 10:52:21vstinnersetmessageid: <1461063141.34.0.82021694339.issue26058@psf.upfronthosting.co.za>
2016-04-19 10:52:21vstinnerlinkissue26058 messages
2016-04-19 10:52:20vstinnercreate