Message167974
> Victor, your benchmark is buggy (it writes one character at a time).
Oh, it's not what I wanted to test.
I attach a new benchmark. Here are the results. PyAccu looks much more appropriate than _PyUnicodeWriter, because it is always faster, except to write 100.000 very long lines.
Common platform:
CPU model: Intel(R) Core(TM) i7-2600 CPU @ 3.40GHz
CFLAGS: -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes
Bits: int=32, long=64, long long=64, pointer=64
Python unicode implementation: PEP 393
Platform: Linux-3.4.4-4.fc16.x86_64-x86_64-with-fedora-16-Verne
Platform of campaign pyaccu:
SCM: hg revision=9804aec74d4a tag=tip branch=default date="2012-08-10 18:55 -0400"
Date: 2012-08-11 16:53:46
Python version: 3.3.0b1 (default:9804aec74d4a, Aug 11 2012, 16:53:12) [GCC 4.6.3 20120306 (Red Hat 4.6.3-2)]
Platform of campaign writer:
SCM: hg revision=9804aec74d4a+ tag=tip branch=default date="2012-08-10 18:55 -0400"
Date: 2012-08-11 16:50:40
Python version: 3.3.0b1 (default:9804aec74d4a+, Aug 11 2012, 16:33:18) [GCC 4.6.3 20120306 (Red Hat 4.6.3-2)]
--------------------------------------+-------------+---------------
10 lines | pyaccu | writer
--------------------------------------+-------------+---------------
reader short line ascii | 1.53 us (*) | 1.46 us
writer short line ascii | 4.85 us (*) | 4.48 us (-8%)
writer-reader short line ascii | 6.45 us (*) | 5.71 us (-12%)
reader short line latin1 | 1.57 us (*) | 1.45 us (-8%)
writer short line latin1 | 4.92 us (*) | 4.56 us (-7%)
writer-reader short line latin1 | 6.6 us (*) | 5.78 us (-13%)
reader short line bmp | 1.64 us (*) | 1.54 us (-6%)
writer short line bmp | 5.01 us (*) | 4.43 us (-12%)
writer-reader short line bmp | 6.68 us (*) | 5.71 us (-14%)
reader short line non-bmp | 1.61 us (*) | 1.59 us
writer short line non-bmp | 5.1 us (*) | 4.55 us (-11%)
writer-reader short line non-bmp | 6.74 us (*) | 5.66 us (-16%)
reader long lines ascii | 103 us (*) | 33.4 us (-68%)
writer long lines ascii | 998 ns (*) | 836 ns (-16%)
writer-reader long lines ascii | 1.45 us (*) | 1.18 us (-19%)
reader long lines latin1 | 105 us (*) | 34.2 us (-67%)
writer long lines latin1 | 997 ns (*) | 831 ns (-17%)
writer-reader long lines latin1 | 1.47 us (*) | 1.2 us (-18%)
reader long lines bmp | 121 us (*) | 85.9 us (-29%)
writer long lines bmp | 995 ns (*) | 861 ns (-13%)
writer-reader long lines bmp | 1.43 us (*) | 1.13 us (-21%)
reader long lines non-bmp | 97.1 us (*) | 99.7 us
writer long lines non-bmp | 1 us (*) | 819 ns (-18%)
writer-reader long lines non-bmp | 1.4 us (*) | 1.18 us (-16%)
reader very long lines ascii | 1.42 us (*) | 1.45 us
writer very long lines ascii | 3.04 us (*) | 2.88 us (-5%)
writer-reader very long lines ascii | 4.59 us (*) | 4.12 us (-10%)
reader very long lines latin1 | 1.57 us (*) | 1.47 us (-7%)
writer very long lines latin1 | 3.04 us (*) | 2.73 us (-10%)
writer-reader very long lines latin1 | 4.66 us (*) | 4.04 us (-13%)
reader very long lines bmp | 1.55 us (*) | 1.55 us
writer very long lines bmp | 3.03 us (*) | 2.91 us
writer-reader very long lines bmp | 4.72 us (*) | 4.08 us (-14%)
reader very long lines non-bmp | 1.55 us (*) | 1.49 us
writer very long lines non-bmp | 3.09 us (*) | 2.93 us (-5%)
writer-reader very long lines non-bmp | 4.59 us (*) | 4.06 us (-12%)
--------------------------------------+-------------+---------------
Total | 525 us (*) | 342 us (-35%)
--------------------------------------+-------------+---------------
--------------------------------------+-------------+---------------
1000 lines | pyaccu | writer
--------------------------------------+-------------+---------------
reader short line ascii | 68.2 us (*) | 66.1 us
writer short line ascii | 308 us (*) | 307 us
writer-reader short line ascii | 378 us (*) | 374 us
reader short line latin1 | 72 us (*) | 68.5 us
writer short line latin1 | 324 us (*) | 313 us
writer-reader short line latin1 | 395 us (*) | 383 us
reader short line bmp | 74.8 us (*) | 71.9 us
writer short line bmp | 326 us (*) | 303 us (-7%)
writer-reader short line bmp | 397 us (*) | 378 us
reader short line non-bmp | 72.9 us (*) | 72.6 us
writer short line non-bmp | 329 us (*) | 304 us (-8%)
writer-reader short line non-bmp | 397 us (*) | 383 us
reader long lines ascii | 104 us (*) | 33.8 us (-67%)
writer long lines ascii | 1.99 us (*) | 2.52 us (+27%)
writer-reader long lines ascii | 4.37 us (*) | 3.45 us (-21%)
reader long lines latin1 | 104 us (*) | 33.3 us (-68%)
writer long lines latin1 | 2.07 us (*) | 2.55 us (+23%)
writer-reader long lines latin1 | 4.51 us (*) | 3.57 us (-21%)
reader long lines bmp | 120 us (*) | 80.5 us (-33%)
writer long lines bmp | 2.15 us (*) | 2.55 us (+18%)
writer-reader long lines bmp | 4.71 us (*) | 3.86 us (-18%)
reader long lines non-bmp | 90.6 us (*) | 97.6 us (+8%)
writer long lines non-bmp | 2.18 us (*) | 2.68 us (+23%)
writer-reader long lines non-bmp | 4.24 us (*) | 4.05 us
reader very long lines ascii | 2.53 us (*) | 1.66 us (-34%)
writer very long lines ascii | 3.07 us (*) | 3.46 us (+13%)
writer-reader very long lines ascii | 6.18 us (*) | 4.89 us (-21%)
reader very long lines latin1 | 2.57 us (*) | 1.75 us (-32%)
writer very long lines latin1 | 3.16 us (*) | 3.46 us (+10%)
writer-reader very long lines latin1 | 6.32 us (*) | 4.98 us (-21%)
reader very long lines bmp | 2.7 us (*) | 2.34 us (-14%)
writer very long lines bmp | 3.52 us (*) | 3.65 us
writer-reader very long lines bmp | 6.73 us (*) | 5.7 us (-15%)
reader very long lines non-bmp | 2.45 us (*) | 2.35 us
writer very long lines non-bmp | 3.47 us (*) | 3.87 us (+12%)
writer-reader very long lines non-bmp | 5.98 us (*) | 5.85 us
--------------------------------------+-------------+---------------
Total | 3.63 ms (*) | 3.34 ms (-8%)
--------------------------------------+-------------+---------------
--------------------------------------+-------------+---------------
100000 lines | pyaccu | writer
--------------------------------------+-------------+---------------
reader short line ascii | 6.74 ms (*) | 6.43 ms
writer short line ascii | 30.7 ms (*) | 29.8 ms
writer-reader short line ascii | 37.5 ms (*) | 36.6 ms
reader short line latin1 | 7.08 ms (*) | 6.64 ms (-6%)
writer short line latin1 | 31.3 ms (*) | 30.1 ms
writer-reader short line latin1 | 38.8 ms (*) | 37.5 ms
reader short line bmp | 7.46 ms (*) | 6.98 ms (-6%)
writer short line bmp | 32 ms (*) | 29 ms (-9%)
writer-reader short line bmp | 40.5 ms (*) | 35.9 ms (-11%)
reader short line non-bmp | 7.36 ms (*) | 7.23 ms
writer short line non-bmp | 33.3 ms (*) | 29.4 ms (-12%)
writer-reader short line non-bmp | 40.5 ms (*) | 36.5 ms (-10%)
reader long lines ascii | 103 us (*) | 32.6 us (-68%)
writer long lines ascii | 59.4 us (*) | 66.5 us (+12%)
writer-reader long lines ascii | 220 us (*) | 99.2 us (-55%)
reader long lines latin1 | 105 us (*) | 32.2 us (-69%)
writer long lines latin1 | 60.2 us (*) | 67.3 us (+12%)
writer-reader long lines latin1 | 240 us (*) | 97.6 us (-59%)
reader long lines bmp | 122 us (*) | 76.9 us (-37%)
writer long lines bmp | 62.1 us (*) | 73.8 us (+19%)
writer-reader long lines bmp | 242 us (*) | 151 us (-38%)
reader long lines non-bmp | 95.7 us (*) | 92.1 us
writer long lines non-bmp | 76.5 us (*) | 90.3 us (+18%)
writer-reader long lines non-bmp | 198 us (*) | 173 us (-12%)
reader very long lines ascii | 91.6 us (*) | 11.5 us (-87%)
writer very long lines ascii | 7.15 us (*) | 11.9 us (+67%)
writer-reader very long lines ascii | 145 us (*) | 20.1 us (-86%)
reader very long lines latin1 | 110 us (*) | 12 us (-89%)
writer very long lines latin1 | 7.52 us (*) | 12.1 us (+61%)
writer-reader very long lines latin1 | 165 us (*) | 20.7 us (-87%)
reader very long lines bmp | 91.1 us (*) | 46.7 us (-49%)
writer very long lines bmp | 12.3 us (*) | 22.5 us (+82%)
writer-reader very long lines bmp | 150 us (*) | 61.9 us (-59%)
reader very long lines non-bmp | 66.8 us (*) | 66.6 us
writer very long lines non-bmp | 22.4 us (*) | 38.4 us (+72%)
writer-reader very long lines non-bmp | 108 us (*) | 87.7 us (-19%)
--------------------------------------+-------------+---------------
Total | 316 ms (*) | 294 ms (-7%)
--------------------------------------+-------------+---------------
-------------+-------------+--------------
Summary | pyaccu | writer
-------------+-------------+--------------
10 lines | 525 us (*) | 342 us (-35%)
1000 lines | 3.63 ms (*) | 3.34 ms (-8%)
100000 lines | 316 ms (*) | 294 ms (-7%)
-------------+-------------+--------------
Total | 320 ms (*) | 297 ms (-7%)
-------------+-------------+-------------- |
|
Date |
User |
Action |
Args |
2012-08-11 15:31:19 | vstinner | set | recipients:
+ vstinner, pitrou, ezio.melotti |
2012-08-11 15:31:19 | vstinner | set | messageid: <1344699079.65.0.688214286935.issue15612@psf.upfronthosting.co.za> |
2012-08-11 15:31:19 | vstinner | link | issue15612 messages |
2012-08-11 15:31:16 | vstinner | create | |
|