Platform of campaign bench-2.7: Date: 2012-05-23 15:22:21 Platform: Linux-3.2.0-24-generic-pae-i686-with-debian-wheezy-sid Python version: 2.7.3rc2 (2.7:8258e5fa4a19, May 23 2012, 10:45:03) [GCC 4.6.3] Python unicode implementation: UTF-16 CPU model: Intel(R) Core(TM) i5 CPU 661 @ 3.33GHz CFLAGS: -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes SCM: hg revision=8258e5fa4a19 tag=tip branch=2.7 date="2012-04-05 14:07 +0200" Platform of campaign bench-3.2: Date: 2012-05-23 15:24:27 Platform: Linux-3.2.0-24-generic-pae-i686-with-debian-wheezy-sid Python version: 3.2.3+ (3.2:26c1a1f29e1e, May 23 2012, 10:41:16) [GCC 4.6.3] Python unicode implementation: UCS-4 CPU model: Intel(R) Core(TM) i5 CPU 661 @ 3.33GHz CFLAGS: -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes SCM: hg revision=26c1a1f29e1e branch=3.2 date="2012-05-02 20:49 +0200" Platform of campaign bench-writer: Date: 2012-05-23 14:31:39 Platform: Linux-3.2.0-24-generic-pae-i686-with-debian-wheezy-sid Python version: 3.3.0a3+ (default:8b118f6f661e, May 23 2012, 14:30:53) [GCC 4.6.3] Python unicode implementation: PEP 393 CPU model: Intel(R) Core(TM) i5 CPU 661 @ 3.33GHz CFLAGS: -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes SCM: hg revision=8b118f6f661e tag=tip branch=default date="2012-05-23 14:10 +0200" --------------------------------------+-------------+---------------+--------------- Basic format, short ASCII output | bench-2.7 | bench-3.2 | bench-writer --------------------------------------+-------------+---------------+--------------- fmt="{}"; arg="abc"; fmt.format(arg) | 208 ns (*) | 252 ns (+21%) | 206 ns fmt="{}"; arg=123; fmt.format(arg) | 250 ns (*) | 272 ns (+9%) | 240 ns fmt="{}"; arg=12.345; fmt.format(arg) | 479 ns (*) | 808 ns (+69%) | 751 ns (+57%) fmt="{}"; arg=2j; fmt.format(arg) | 937 ns (*) | 946 ns | 578 ns (-38%) fmt="{}"; arg=1+2j; fmt.format(arg) | 1.07 us (*) | 1.05 us | 787 ns (-26%) fmt="{:d}"; arg=123; fmt.format(arg) | 341 ns (*) | 393 ns (+15%) | 295 ns (-14%) fmt="{:x}"; arg=123; fmt.format(arg) | 346 ns (*) | 447 ns (+29%) | 288 ns (-17%) fmt="%s"; arg="abc"; fmt % arg | 109 ns (*) | 138 ns (+27%) | 64 ns (-42%) fmt="%s"; arg=123; fmt % arg | 142 ns (*) | 173 ns (+22%) | 117 ns (-18%) fmt="%s"; arg=12.345; fmt % arg | 374 ns (*) | 650 ns (+74%) | 609 ns (+63%) fmt="%s"; arg=2j; fmt % arg | 555 ns (*) | 565 ns | 438 ns (-21%) fmt="%s"; arg=1+2j; fmt % arg | 697 ns (*) | 683 ns | 645 ns (-7%) fmt="%d"; arg=123; fmt % arg | 523 ns (*) | 298 ns (-43%) | 118 ns (-77%) fmt="%x"; arg=123; fmt % arg | 508 ns (*) | 344 ns (-32%) | 116 ns (-77%) --------------------------------------+-------------+---------------+--------------- Total | 6.54 us (*) | 7.02 us (+7%) | 5.25 us (-20%) --------------------------------------+-------------+---------------+--------------- ---------------------------------------------+-------------+-----------------+--------------- Basic format, long output | bench-2.7 | bench-3.2 | bench-writer ---------------------------------------------+-------------+-----------------+--------------- fmt="{}"; arg="A" * 4096; fmt.format(arg) | 390 ns (*) | 1.12 us (+187%) | 196 ns (-50%) fmt="{}"; arg=2**4096 - 1; fmt.format(arg) | 116 us (*) | 116 us | 115 us fmt="%s"; arg="A" * 4096; fmt % arg | 289 ns (*) | 965 ns (+234%) | 64 ns (-78%) fmt="%s"; arg=2**4096 - 1; fmt % arg | 115 us (*) | 116 us | 115 us fmt="{:d}"; arg=2**4096 - 1; fmt.format(arg) | 116 us (*) | 116 us | 116 us fmt="{:x}"; arg=2**4096 - 1; fmt.format(arg) | 4.44 us (*) | 4.55 us | 2.8 us (-37%) fmt="%d"; arg=2**4096 - 1; fmt % arg | 115 us (*) | 117 us | 115 us fmt="%x"; arg=2**4096 - 1; fmt % arg | 4.08 us (*) | 5.63 us (+38%) | 2.61 us (-36%) ---------------------------------------------+-------------+-----------------+--------------- Total | 472 us (*) | 478 us | 468 us ---------------------------------------------+-------------+-----------------+--------------- --------------------------------------------------------+-------------+-----------------+--------------- Basic format, huge output | bench-2.7 | bench-3.2 | bench-writer --------------------------------------------------------+-------------+-----------------+--------------- fmt="{}"; arg="A" * (10 * 1024 * 1024); fmt.format(arg) | 6.02 ms (*) | 23.8 ms (+295%) | 202 ns (-100%) fmt="%s"; arg="A" * (10 * 1024 * 1024); fmt % arg | 6.01 ms (*) | 23.7 ms (+295%) | 65 ns (-100%) fmt="{}"; arg=2 ** 123456 - 1; fmt.format(arg) | 101 ms (*) | 101 ms | 101 ms fmt="%s"; arg=2 ** 123456 - 1; fmt % arg | 101 ms (*) | 101 ms | 101 ms --------------------------------------------------------+-------------+-----------------+--------------- Total | 214 ms (*) | 250 ms (+17%) | 202 ms (-6%) --------------------------------------------------------+-------------+-----------------+--------------- ---------------------------------------------+-------------+----------------+--------------- One argument with ASCII prefix, short output | bench-2.7 | bench-3.2 | bench-writer ---------------------------------------------+-------------+----------------+--------------- fmt="x={}"; arg="abc"; fmt.format(arg) | 216 ns (*) | 239 ns (+11%) | 279 ns (+29%) fmt="x={}"; arg=123; fmt.format(arg) | 247 ns (*) | 281 ns (+14%) | 309 ns (+25%) fmt="x={}"; arg=12.345; fmt.format(arg) | 479 ns (*) | 794 ns (+66%) | 858 ns (+79%) fmt="x={}"; arg=2j; fmt.format(arg) | 936 ns (*) | 918 ns | 688 ns (-27%) fmt="x={}"; arg=1+2j; fmt.format(arg) | 1.09 us (*) | 1.01 us (-7%) | 888 ns (-18%) fmt="x=%s"; arg="abc"; fmt % arg | 109 ns (*) | 123 ns (+13%) | 151 ns (+38%) fmt="x=%s"; arg=123; fmt % arg | 141 ns (*) | 173 ns (+23%) | 213 ns (+51%) fmt="x=%s"; arg=12.345; fmt % arg | 379 ns (*) | 653 ns (+72%) | 702 ns (+85%) fmt="x=%s"; arg=2j; fmt % arg | 566 ns (*) | 571 ns | 525 ns (-7%) fmt="x=%s"; arg=1+2j; fmt % arg | 692 ns (*) | 696 ns | 753 ns (+9%) ---------------------------------------------+-------------+----------------+--------------- Total | 4.85 us (*) | 5.46 us (+12%) | 5.37 us (+11%) ---------------------------------------------+-------------+----------------+--------------- ---------------------------------------------+-------------+---------------+-------------- One argument with ASCII suffix, short output | bench-2.7 | bench-3.2 | bench-writer ---------------------------------------------+-------------+---------------+-------------- fmt="{}:"; arg="abc"; fmt.format(arg) | 246 ns (*) | 273 ns (+11%) | 273 ns (+11%) fmt="{}:"; arg=123; fmt.format(arg) | 284 ns (*) | 306 ns (+8%) | 314 ns (+11%) fmt="{}:"; arg=12.345; fmt.format(arg) | 504 ns (*) | 834 ns (+65%) | 899 ns (+78%) fmt="{}:"; arg=2j; fmt.format(arg) | 978 ns (*) | 958 ns | 680 ns (-30%) fmt="{}:"; arg=1+2j; fmt.format(arg) | 1.12 us (*) | 1.07 us | 906 ns (-19%) fmt="%s:"; arg="abc"; fmt % arg | 109 ns (*) | 124 ns (+14%) | 152 ns (+40%) fmt="%s:"; arg=123; fmt % arg | 138 ns (*) | 183 ns (+33%) | 211 ns (+53%) fmt="%s:"; arg=12.345; fmt % arg | 376 ns (*) | 670 ns (+78%) | 714 ns (+90%) fmt="%s:"; arg=2j; fmt % arg | 559 ns (*) | 580 ns | 527 ns (-6%) fmt="%s:"; arg=1+2j; fmt % arg | 678 ns (*) | 704 ns | 738 ns (+9%) ---------------------------------------------+-------------+---------------+-------------- Total | 4.99 us (*) | 5.7 us (+14%) | 5.42 us (+8%) ---------------------------------------------+-------------+---------------+-------------- ------------------------------------------------------------+-------------+-----------------+--------------- Huge long output with prefix and suffix | bench-2.7 | bench-3.2 | bench-writer ------------------------------------------------------------+-------------+-----------------+--------------- fmt="{}"; arg="A" * (10 * 1024 * 1024); fmt.format(arg) | 6.04 ms (*) | 23.9 ms (+296%) | 201 ns (-100%) fmt="%s"; arg="A" * (10 * 1024 * 1024); fmt % arg | 6.03 ms (*) | 23.9 ms (+297%) | 65 ns (-100%) fmt="x=[{}]"; arg="A" * (10 * 1024 * 1024); fmt.format(arg) | 7.82 ms (*) | 30.6 ms (+291%) | 7.21 ms (-8%) fmt="x=[%s]"; arg="A" * (10 * 1024 * 1024); fmt % arg | 7.8 ms (*) | 30.6 ms (+292%) | 7.21 ms (-8%) fmt="{}"; arg=2 ** 123456 - 1; fmt.format(arg) | 101 ms (*) | 101 ms | 101 ms fmt="%s"; arg=2 ** 123456 - 1; fmt % arg | 101 ms (*) | 101 ms | 101 ms fmt="x=[{}]"; arg=2 ** 123456 - 1; fmt.format(arg) | 101 ms (*) | 101 ms | 102 ms fmt="x=[%s]"; arg=2 ** 123456 - 1; fmt % arg | 101 ms (*) | 101 ms | 101 ms ------------------------------------------------------------+-------------+-----------------+--------------- Total | 432 ms (*) | 513 ms (+19%) | 419 ms ------------------------------------------------------------+-------------+-----------------+--------------- --------------------------------------------+-------------+----------------+--------------- Many short arguments | bench-2.7 | bench-3.2 | bench-writer --------------------------------------------+-------------+----------------+--------------- fmt="{0}"*1024; fmt.format("abc") | 67.9 us (*) | 76.3 us (+12%) | 81.8 us (+21%) fmt="{0}"*1024; fmt.format(123) | 105 us (*) | 123 us (+17%) | 104 us fmt="{0}"*1024; fmt.format(12.345) | 319 us (*) | 614 us (+93%) | 608 us (+91%) fmt="{0}"*1024; fmt.format(2j) | 741 us (*) | 699 us (-6%) | 466 us (-37%) fmt="{0}"*1024; fmt.format(1+2j) | 878 us (*) | 802 us (-9%) | 691 us (-21%) fmt="{0}{1}"*1024; fmt.format("abc", 123) | 174 us (*) | 213 us (+22%) | 217 us (+25%) fmt="{0}-"*1024; fmt.format("abc") | 69.6 us (*) | 84.7 us (+22%) | 116 us (+67%) fmt="{0}-"*1024; fmt.format(123) | 106 us (*) | 120 us (+13%) | 135 us (+27%) fmt="{0}-{1}="*1024; fmt.format("abc", 123) | 182 us (*) | 215 us (+18%) | 263 us (+45%) --------------------------------------------+-------------+----------------+--------------- Total | 2.64 ms (*) | 2.95 ms (+11%) | 2.68 ms --------------------------------------------+-------------+----------------+--------------- -----------------------------------------------------------------------+-------------+-----------------+--------------- Many long arguments | bench-2.7 | bench-3.2 | bench-writer -----------------------------------------------------------------------+-------------+-----------------+--------------- fmt="{0}"*1024; arg="A" * 4096; fmt.format(arg) | 1.93 ms (*) | 8.56 ms (+343%) | 1.62 ms (-16%) fmt="{0}"*1024; arg=2**4096 - 1; fmt.format(arg) | 119 ms (*) | 120 ms | 119 ms fmt="{0}{1}"*1024; args=("A" * 4096, 2**4096 - 1); fmt.format(*args) | 121 ms (*) | 129 ms (+6%) | 121 ms fmt="{0}-"*1024; arg="A" * 4096; fmt.format(arg) | 1.92 ms (*) | 8.51 ms (+343%) | 1.69 ms (-12%) fmt="{0}-"*1024; arg=2**4096 - 1; fmt.format(arg) | 119 ms (*) | 120 ms | 119 ms fmt="{0}-{1}="*1024; args=("A" * 4096, 2**4096 - 1); fmt.format(*args) | 121 ms (*) | 129 ms (+6%) | 121 ms -----------------------------------------------------------------------+-------------+-----------------+--------------- Total | 485 ms (*) | 515 ms (+6%) | 483 ms -----------------------------------------------------------------------+-------------+-----------------+--------------- -----------------------------------------------------------------------------------------+------------+---------------+--------------- Keywords | bench-2.7 | bench-3.2 | bench-writer -----------------------------------------------------------------------------------------+------------+---------------+--------------- s="The {k1} is {k2} the {k3}."; args={"k1": "x", "k2": "y", "k3": "z"}; s.format(**args) | 537 ns (*) | 621 ns (+16%) | 856 ns (+59%) s="The %(k1)s is %(k2)s the %(k3)s."; args={"k1":"x","k2":"y","k3":"z",}; s % args | 362 ns (*) | 378 ns | 620 ns (+71%) -----------------------------------------------------------------------------------------+------------+---------------+--------------- Total | 898 ns (*) | 998 ns (+11%) | 1.48 us (+64%) -----------------------------------------------------------------------------------------+------------+---------------+--------------- ------------------------------------------+-------------+----------------+--------------- Align to 10 characters | bench-2.7 | bench-3.2 | bench-writer ------------------------------------------+-------------+----------------+--------------- fmt="{:<10}"; arg="abc"; fmt.format(arg) | 257 ns (*) | 342 ns (+33%) | 305 ns (+19%) fmt="{:<10}"; arg=123; fmt.format(arg) | 340 ns (*) | 497 ns (+46%) | 492 ns (+45%) fmt="{:<10}"; arg=12.345; fmt.format(arg) | 593 ns (*) | 1.03 us (+74%) | 1.15 us (+94%) fmt="{:<10}"; arg=2j; fmt.format(arg) | 816 ns (*) | 929 ns (+14%) | 757 ns (-7%) fmt="{:<10}"; arg=1+2j; fmt.format(arg) | 899 ns (*) | 994 ns (+11%) | 832 ns (-7%) fmt="{:>10}"; arg="abc"; fmt.format(arg) | 256 ns (*) | 344 ns (+34%) | 302 ns (+18%) fmt="{:>10}"; arg=123; fmt.format(arg) | 343 ns (*) | 498 ns (+45%) | 484 ns (+41%) fmt="{:>10}"; arg=12.345; fmt.format(arg) | 602 ns (*) | 1.03 us (+72%) | 1.14 us (+89%) fmt="{:>10}"; arg=2j; fmt.format(arg) | 839 ns (*) | 932 ns (+11%) | 763 ns (-9%) fmt="{:>10}"; arg=1+2j; fmt.format(arg) | 894 ns (*) | 984 ns (+10%) | 836 ns (-7%) fmt="{:^10}"; arg="abc"; fmt.format(arg) | 271 ns (*) | 343 ns (+27%) | 323 ns (+19%) fmt="{:^10}"; arg=123; fmt.format(arg) | 345 ns (*) | 500 ns (+45%) | 495 ns (+44%) fmt="{:^10}"; arg=12.345; fmt.format(arg) | 606 ns (*) | 1.04 us (+71%) | 1.15 us (+89%) fmt="{:^10}"; arg=2j; fmt.format(arg) | 831 ns (*) | 933 ns (+12%) | 773 ns (-7%) fmt="{:^10}"; arg=1+2j; fmt.format(arg) | 932 ns (*) | 990 ns (+6%) | 853 ns (-8%) ------------------------------------------+-------------+----------------+--------------- Total | 8.83 us (*) | 11.4 us (+29%) | 10.7 us (+21%) ------------------------------------------+-------------+----------------+--------------- --------------------------------------------+-------------+-----------------+--------------- Align to 4096 characters | bench-2.7 | bench-3.2 | bench-writer --------------------------------------------+-------------+-----------------+--------------- fmt="{:<4096}"; arg="abc"; fmt.format(arg) | 610 ns (*) | 3.54 us (+480%) | 496 ns (-19%) fmt="{:<4096}"; arg=123; fmt.format(arg) | 714 ns (*) | 3.67 us (+414%) | 696 ns fmt="{:<4096}"; arg=12.345; fmt.format(arg) | 1.07 us (*) | 4.37 us (+309%) | 1.43 us (+34%) fmt="{:<4096}"; arg=2j; fmt.format(arg) | 1.34 us (*) | 4.32 us (+222%) | 1 us (-25%) fmt="{:<4096}"; arg=1+2j; fmt.format(arg) | 1.41 us (*) | 4.37 us (+211%) | 1.08 us (-23%) fmt="{:>4096}"; arg="abc"; fmt.format(arg) | 614 ns (*) | 3.55 us (+478%) | 489 ns (-20%) fmt="{:>4096}"; arg=123; fmt.format(arg) | 723 ns (*) | 3.71 us (+413%) | 721 ns fmt="{:>4096}"; arg=12.345; fmt.format(arg) | 1.09 us (*) | 4.37 us (+301%) | 1.44 us (+32%) fmt="{:>4096}"; arg=2j; fmt.format(arg) | 1.36 us (*) | 4.3 us (+218%) | 993 ns (-27%) fmt="{:>4096}"; arg=1+2j; fmt.format(arg) | 1.42 us (*) | 4.37 us (+208%) | 1.06 us (-25%) fmt="{:^4096}"; arg="abc"; fmt.format(arg) | 630 ns (*) | 3.54 us (+463%) | 510 ns (-19%) fmt="{:^4096}"; arg=123; fmt.format(arg) | 733 ns (*) | 3.75 us (+411%) | 730 ns fmt="{:^4096}"; arg=12.345; fmt.format(arg) | 1.09 us (*) | 4.39 us (+301%) | 1.45 us (+32%) fmt="{:^4096}"; arg=2j; fmt.format(arg) | 1.36 us (*) | 4.31 us (+218%) | 1.04 us (-24%) fmt="{:^4096}"; arg=1+2j; fmt.format(arg) | 1.46 us (*) | 4.38 us (+200%) | 1.1 us (-25%) --------------------------------------------+-------------+-----------------+--------------- Total | 15.6 us (*) | 60.9 us (+290%) | 14.2 us (-9%) --------------------------------------------+-------------+-----------------+--------------- -------------------------------------------------+------------+---------------+-------------- Format number in the locale | bench-2.7 | bench-3.2 | bench-writer -------------------------------------------------+------------+---------------+-------------- fmt="{:,}"; arg=123; fmt.format(arg) | 344 ns (*) | 395 ns (+15%) | 470 ns (+36%) fmt="{:,}"; arg=2**4096 - 1; fmt.format(arg) | 128 us (*) | 125 us | 126 us fmt="{:,}"; arg=2 ** 123456 - 1; fmt.format(arg) | 101 ms (*) | 101 ms | 102 ms -------------------------------------------------+------------+---------------+-------------- Total | 101 ms (*) | 102 ms | 102 ms -------------------------------------------------+------------+---------------+-------------- ------------------------------------+------------+---------------+-------------- str(int) | bench-2.7 | bench-3.2 | bench-writer ------------------------------------+------------+---------------+-------------- number=123; str(number) | 168 ns (*) | 152 ns (-10%) | 260 ns (+55%) number=2**4096 - 1; str(number) | 116 us (*) | 115 us | 116 us number=2 ** 123456 - 1; str(number) | 101 ms (*) | 101 ms | 101 ms ------------------------------------+------------+---------------+-------------- Total | 101 ms (*) | 101 ms | 101 ms ------------------------------------+------------+---------------+-------------- ---------------------------------------------+--------------+-----------------+--------------- Summary | bench-2.7 | bench-3.2 | bench-writer ---------------------------------------------+--------------+-----------------+--------------- Basic format, short ASCII output | 6.54 us (*) | 7.02 us (+7%) | 5.25 us (-20%) Basic format, long output | 472 us (*) | 478 us | 468 us Basic format, huge output | 214 ms (*) | 250 ms (+17%) | 202 ms (-6%) One argument with ASCII prefix, short output | 4.85 us (*) | 5.46 us (+12%) | 5.37 us (+11%) One argument with ASCII suffix, short output | 4.99 us (*) | 5.7 us (+14%) | 5.42 us (+8%) Huge long output with prefix and suffix | 432 ms (*) | 513 ms (+19%) | 419 ms Many short arguments | 2.64 ms (*) | 2.95 ms (+11%) | 2.68 ms Many long arguments | 485 ms (*) | 515 ms (+6%) | 483 ms Keywords | 898 ns (*) | 998 ns (+11%) | 1.48 us (+64%) Align to 10 characters | 8.83 us (*) | 11.4 us (+29%) | 10.7 us (+21%) Align to 4096 characters | 15.6 us (*) | 60.9 us (+290%) | 14.2 us (-9%) Format number in the locale | 101 ms (*) | 102 ms | 102 ms str(int) | 101 ms (*) | 101 ms | 101 ms ---------------------------------------------+--------------+-----------------+--------------- Total | 1.34 sec (*) | 1.48 sec (+11%) | 1.31 sec ---------------------------------------------+--------------+-----------------+---------------