[Python-Dev] performance
Antoine Pitrou
solipsis at pitrou.net
Sun Aug 24 14:58:31 CEST 2008
Neal Norwitz <nnorwitz <at> gmail.com> writes:
> Can someone (else) compare performance of 2.5, 2.6, and 3.0?
Tests done on a 32-bit Linux installation on an Athlon 3600+ X2. Compiled with
gcc in UCS2 mode.
pystone
-------
- 2.5: 43859.6 pystones/second
- 2.6: 42016.8 pystones/second
- 3.0: 38759.7 pystones/second
richards.py
-----------
(roughly, richards is an object-oriented method-calling benchmark)
- 2.5: 770.54 ms per iteration
- 2.6: 572.84 ms per iteration
- 3.0: 566.69 ms per iteration
stringbench
-----------
- 2.5: unicode: 265.84 s / bytes: 180.50 s
- 2.6: unicode: 256.22 s / bytes: 184.45 s
- 3.0: unicode: 248.07 s / bytes: not tested
pybench: 2.6 vs. 2.5
--------------------
"this" is 2.6, "other" is 2.5.
Test minimum run-time average run-time
this other diff this other diff
-------------------------------------------------------------------------------
BuiltinFunctionCalls: 177ms 181ms -2.2% 178ms 182ms -2.1%
BuiltinMethodLookup: 157ms 177ms -11.1% 158ms 177ms -11.0%
CompareFloats: 171ms 171ms -0.3% 171ms 171ms -0.3%
CompareFloatsIntegers: 158ms 162ms -2.1% 160ms 167ms -4.8%
CompareIntegers: 208ms 208ms -0.0% 209ms 209ms -0.3%
CompareInternedStrings: 189ms 183ms +3.4% 189ms 184ms +2.7%
CompareLongs: 154ms 154ms -0.2% 154ms 154ms -0.2%
CompareStrings: 162ms 159ms +1.7% 163ms 159ms +2.5%
CompareUnicode: 144ms 149ms -3.6% 144ms 152ms -5.0%
ComplexPythonFunctionCalls: 173ms 242ms -28.5% 176ms 243ms -27.6%
ConcatStrings: 196ms 198ms -0.9% 203ms 200ms +1.4%
ConcatUnicode: 153ms 151ms +1.5% 155ms 157ms -1.5%
CreateInstances: 172ms 169ms +1.5% 173ms 170ms +1.4%
CreateNewInstances: 131ms 148ms -11.6% 132ms 151ms -12.2%
CreateStringsWithConcat: 209ms 206ms +1.4% 209ms 208ms +0.8%
CreateUnicodeWithConcat: 128ms 124ms +3.7% 129ms 124ms +3.4%
DictCreation: 115ms 149ms -22.8% 116ms 150ms -22.8%
DictWithFloatKeys: 208ms 207ms +0.4% 208ms 208ms +0.0%
DictWithIntegerKeys: 173ms 173ms -0.0% 174ms 173ms +0.5%
DictWithStringKeys: 162ms 162ms -0.1% 162ms 162ms +0.1%
ForLoops: 181ms 181ms -0.2% 181ms 182ms -0.2%
IfThenElse: 169ms 168ms +0.2% 169ms 169ms -0.2%
ListSlicing: 109ms 108ms +0.2% 109ms 109ms +0.1%
NestedForLoops: 198ms 197ms +0.2% 198ms 197ms +0.1%
NormalClassAttribute: 176ms 172ms +2.0% 176ms 173ms +1.7%
NormalInstanceAttribute: 162ms 161ms +1.0% 163ms 161ms +1.1%
PythonFunctionCalls: 161ms 151ms +6.6% 162ms 153ms +6.0%
PythonMethodCalls: 188ms 189ms -0.7% 189ms 193ms -2.0%
Recursion: 235ms 230ms +2.2% 236ms 233ms +1.2%
SecondImport: 113ms 114ms -1.0% 115ms 115ms +0.0%
SecondPackageImport: 120ms 116ms +3.6% 120ms 117ms +2.9%
SecondSubmoduleImport: 154ms 146ms +6.0% 156ms 148ms +5.7%
SimpleComplexArithmetic: 163ms 151ms +8.3% 163ms 151ms +8.6%
SimpleDictManipulation: 177ms 173ms +2.6% 180ms 174ms +3.2%
SimpleFloatArithmetic: 169ms 164ms +3.0% 169ms 166ms +2.2%
SimpleIntFloatArithmetic: 153ms 152ms +1.2% 156ms 153ms +1.8%
SimpleIntegerArithmetic: 156ms 152ms +2.5% 156ms 153ms +2.0%
SimpleListManipulation: 156ms 158ms -1.0% 157ms 158ms -0.5%
SimpleLongArithmetic: 159ms 150ms +6.1% 161ms 151ms +6.3%
SmallLists: 156ms 154ms +1.1% 160ms 155ms +3.0%
SmallTuples: 156ms 155ms +0.4% 157ms 156ms +0.8%
SpecialClassAttribute: 173ms 172ms +0.6% 173ms 172ms +0.7%
SpecialInstanceAttribute: 202ms 198ms +2.4% 203ms 199ms +2.2%
StringMappings: 164ms 170ms -3.2% 165ms 171ms -3.9%
StringPredicates: 160ms 185ms -13.6% 160ms 186ms -13.9%
StringSlicing: 169ms 178ms -5.3% 174ms 180ms -3.4%
TryExcept: 181ms 184ms -1.5% 181ms 184ms -1.5%
TryFinally: 157ms 158ms -0.3% 159ms 161ms -1.2%
TryRaiseExcept: 183ms 122ms +49.6% 184ms 124ms +48.2%
TupleSlicing: 142ms 140ms +1.5% 144ms 141ms +2.0%
UnicodeMappings: 198ms 190ms +4.1% 198ms 190ms +4.1%
UnicodePredicates: 157ms 175ms -10.2% 157ms 176ms -10.6%
UnicodeProperties: 161ms 161ms +0.1% 162ms 170ms -5.0%
UnicodeSlicing: 148ms 153ms -3.3% 151ms 155ms -2.6%
WithFinally: 191ms 203ms -5.9% 193ms 208ms -7.5%
WithRaiseExcept: 151ms 160ms -5.8% 152ms 167ms -9.0%
-------------------------------------------------------------------------------
Totals: 9287ms 9363ms -0.8% 9351ms 9455ms -1.1%
pybench: 3.0
------------
Not entirely comparable with the above since some tests disappeared.
Test minimum average operation overhead
-------------------------------------------------------------------------------
BuiltinFunctionCalls: 134ms 134ms 0.26us 0.631ms
BuiltinMethodLookup: 127ms 127ms 0.12us 0.738ms
CompareFloats: 174ms 174ms 0.14us 0.845ms
CompareFloatsIntegers: 274ms 274ms 0.30us 0.630ms
CompareIntegers: 277ms 277ms 0.15us 1.272ms
CompareInternedStrings: 261ms 261ms 0.17us 3.201ms
CompareLongs: 162ms 162ms 0.15us 0.736ms
CompareStrings: 171ms 173ms 0.17us 2.188ms
ComplexPythonFunctionCalls: 172ms 178ms 0.89us 1.073ms
ConcatStrings: 260ms 273ms 0.55us 1.222ms
CreateInstances: 178ms 178ms 1.59us 0.944ms
CreateNewInstances: 133ms 135ms 1.61us 0.759ms
CreateStringsWithConcat: 253ms 256ms 0.26us 2.127ms
DictCreation: 118ms 118ms 0.29us 0.845ms
DictWithFloatKeys: 207ms 215ms 0.24us 1.593ms
DictWithIntegerKeys: 174ms 176ms 0.15us 2.132ms
DictWithStringKeys: 158ms 158ms 0.13us 2.127ms
ForLoops: 188ms 188ms 7.51us 0.097ms
IfThenElse: 212ms 212ms 0.16us 1.597ms
ListSlicing: 111ms 111ms 7.96us 0.165ms
NestedForLoops: 218ms 220ms 0.15us 0.001ms
NormalClassAttribute: 339ms 340ms 0.28us 1.111ms
NormalInstanceAttribute: 186ms 186ms 0.16us 1.116ms
PythonFunctionCalls: 156ms 158ms 0.48us 0.633ms
PythonMethodCalls: 200ms 201ms 0.89us 0.374ms
Recursion: 259ms 260ms 5.21us 1.059ms
SecondImport: 128ms 128ms 1.28us 0.417ms
SecondPackageImport: 140ms 143ms 1.43us 0.417ms
SecondSubmoduleImport: 200ms 200ms 2.00us 0.417ms
SimpleComplexArithmetic: 142ms 144ms 0.16us 0.844ms
SimpleDictManipulation: 280ms 285ms 0.24us 1.059ms
SimpleFloatArithmetic: 161ms 161ms 0.12us 1.275ms
SimpleIntFloatArithmetic: 199ms 213ms 0.16us 1.272ms
SimpleIntegerArithmetic: 200ms 209ms 0.16us 1.301ms
SimpleListManipulation: 165ms 166ms 0.14us 1.379ms
SimpleLongArithmetic: 132ms 137ms 0.21us 0.630ms
SmallLists: 188ms 191ms 0.28us 0.844ms
SmallTuples: 197ms 199ms 0.37us 0.951ms
SpecialClassAttribute: 534ms 535ms 0.45us 1.121ms
SpecialInstanceAttribute: 185ms 186ms 0.15us 1.125ms
StringMappings: 471ms 471ms 1.87us 0.884ms
StringPredicates: 190ms 191ms 0.27us 4.315ms
StringSlicing: 285ms 290ms 0.52us 1.881ms
TryExcept: 182ms 182ms 0.08us 1.663ms
TryFinally: 134ms 136ms 0.85us 0.882ms
TryRaiseExcept: 137ms 138ms 2.15us 0.885ms
TupleSlicing: 202ms 204ms 0.78us 0.110ms
WithFinally: 185ms 188ms 1.18us 0.881ms
WithRaiseExcept: 274ms 275ms 3.44us 1.105ms
-------------------------------------------------------------------------------
Totals: 10011ms 10120ms
More information about the Python-Dev
mailing list