
"M.-A. Lemburg" wrote:
Fredrik Lundh wrote:
mal wrote:
UnicodeMappings: 1631.65 ms 90.65 us +42.76% UnicodePredicates: 1762.10 ms 7.83 us +15.99% UnicodeProperties: 1410.80 ms 7.05 us +19.57% UnicodeSlicing: 1366.20 ms 7.81 us +19.23%
Unicode mappings and other Unicode database related methods show the effect of the compression of the Unicode database -- a clear space/speed tradeoff.
umm. the tests don't seem to test the "\N{name}" escapes, so the only thing that has changed in 2.1 is the "decomposition" method (used in the UnicodeProperties test).
The mappings figure surprised me too: the code has not changed, but the unicodetype_db.h look different. Don't know how this affects performance though.
The differences could also be explained by a increase in Unicode object creation time (the concatenation is also a lot slower), so perhaps that's where we should look...
are you sure you're comparing against 2.0 final?
Yes... after a check of the Makefile I found that I had compiled Python 2.0 with -O3 and 2.1a1 with -O2 -- perhaps this makes a difference w/r to inlining of code. I'll recompile and rerun the benchmark.
Looks like there is an effect of choosing -O3 over -O2 (even though not necessarily positive all the way); what results do you get on Windows ? -- PYBENCH 0.7 Benchmark: /home/lemburg/tmp/pybench-2.1a1.pyb (rounds=10, warp=20) Tests: per run per oper. diff * ------------------------------------------------------------------------ BuiltinFunctionCalls: 1065.10 ms 8.35 us +3.93% BuiltinMethodLookup: 1286.30 ms 2.45 us +39.12% ConcatStrings: 1243.30 ms 8.29 us +15.80% ConcatUnicode: 1449.10 ms 9.66 us -5.83% CreateInstances: 1639.25 ms 39.03 us +7.95% CreateStringsWithConcat: 1453.45 ms 7.27 us +9.73% CreateUnicodeWithConcat: 1558.45 ms 7.79 us +8.19% DictCreation: 1869.35 ms 12.46 us +8.77% ForLoops: 1526.85 ms 152.69 us -1.03% IfThenElse: 1381.00 ms 2.05 us +12.09% ListSlicing: 547.40 ms 156.40 us -5.52% NestedForLoops: 824.50 ms 2.36 us -1.56% NormalClassAttribute: 1233.55 ms 2.06 us +4.96% NormalInstanceAttribute: 1215.50 ms 2.03 us +16.37% PythonFunctionCalls: 1107.30 ms 6.71 us +10.55% PythonMethodCalls: 1047.00 ms 13.96 us +26.34% Recursion: 940.35 ms 75.23 us +23.47% SecondImport: 894.05 ms 35.76 us +0.59% SecondPackageImport: 915.05 ms 36.60 us +2.14% SecondSubmoduleImport: 1131.10 ms 45.24 us +0.56% SimpleComplexArithmetic: 1652.05 ms 7.51 us +6.67% SimpleDictManipulation: 1150.25 ms 3.83 us +18.72% SimpleFloatArithmetic: 889.65 ms 1.62 us -1.52% SimpleIntFloatArithmetic: 900.80 ms 1.36 us -0.40% SimpleIntegerArithmetic: 901.75 ms 1.37 us -0.72% SimpleListManipulation: 1125.40 ms 4.17 us +4.15% SimpleLongArithmetic: 1305.15 ms 7.91 us +7.62% SmallLists: 2102.85 ms 8.25 us +8.18% SmallTuples: 1329.55 ms 5.54 us +4.98% SpecialClassAttribute: 1234.60 ms 2.06 us +19.23% SpecialInstanceAttribute: 1422.55 ms 2.37 us +11.28% StringMappings: 1585.55 ms 12.58 us +11.46% StringPredicates: 1241.35 ms 4.43 us -9.69% StringSlicing: 1206.20 ms 6.89 us +15.12% TryExcept: 1764.35 ms 1.18 us -0.81% TryRaiseExcept: 1217.40 ms 81.16 us +2.77% TupleSlicing: 933.00 ms 8.89 us -1.90% UnicodeMappings: 1137.35 ms 63.19 us -0.49% UnicodePredicates: 1632.05 ms 7.25 us +7.43% UnicodeProperties: 1244.05 ms 6.22 us +5.44% UnicodeSlicing: 1252.10 ms 7.15 us +9.27% ------------------------------------------------------------------------ Average round time: 58804.00 ms +4.73% *) measured against: /home/lemburg/tmp/pybench-2.0.pyb (rounds=10, warp=20) -- Marc-Andre Lemburg ______________________________________________________________________ Company: http://www.egenix.com/ Consulting: http://www.lemburg.com/ Python Pages: http://www.lemburg.com/python/