Platform of campaign bench-2.7: Date: 2012-05-23 22:16:03 Platform: Linux-3.3.2-6.fc16.x86_64-x86_64-with-fedora-16-Verne Python version: 2.7.3rc1 (2.7:cc48eef234dd, May 23 2012, 22:15:25) [GCC 4.6.3 20120306 (Red Hat 4.6.3-2)] Python unicode implementation: UCS-4 CPU model: Intel(R) Core(TM) i7-2600 CPU @ 3.40GHz CFLAGS: -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes SCM: hg revision=cc48eef234dd branch=2.7 date="2012-03-13 01:25 +0200" Platform of campaign bench-3.2: Date: 2012-05-23 22:10:24 Platform: Linux-3.3.2-6.fc16.x86_64-x86_64-with-fedora-16-Verne Python version: 3.2.3+ (3.2:ab3df6979bd0, May 23 2012, 22:09:03) [GCC 4.6.3 20120306 (Red Hat 4.6.3-2)] Python unicode implementation: UCS-4 CPU model: Intel(R) Core(TM) i7-2600 CPU @ 3.40GHz CFLAGS: -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes SCM: hg revision=ab3df6979bd0 branch=3.2 date="2012-04-25 14:56 +0200" Platform of campaign bench-3.3-writer: Date: 2012-05-23 22:30:44 Platform: Linux-3.3.2-6.fc16.x86_64-x86_64-with-fedora-16-Verne Python version: 3.3.0a3+ (default:faa88c50a3d2, May 23 2012, 22:30:11) [GCC 4.6.3 20120306 (Red Hat 4.6.3-2)] Python unicode implementation: PEP 393 CPU model: Intel(R) Core(TM) i7-2600 CPU @ 3.40GHz CFLAGS: -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes SCM: hg revision=faa88c50a3d2 tag=tip branch=default date="2012-05-23 21:09 +0200" --------------------------------------+-------------+----------------+----------------- Basic format, short ASCII output | bench-2.7 | bench-3.2 | bench-3.3-writer --------------------------------------+-------------+----------------+----------------- fmt="{}"; arg="abc"; fmt.format(arg) | 190 ns (*) | 206 ns (+8%) | 138 ns (-27%) fmt="{}"; arg=123; fmt.format(arg) | 219 ns (*) | 232 ns (+6%) | 189 ns (-14%) fmt="{}"; arg=12.345; fmt.format(arg) | 387 ns (*) | 702 ns (+81%) | 595 ns (+54%) fmt="{}"; arg=2j; fmt.format(arg) | 835 ns (*) | 852 ns | 477 ns (-43%) fmt="{}"; arg=1+2j; fmt.format(arg) | 913 ns (*) | 939 ns | 653 ns (-29%) fmt="{:d}"; arg=123; fmt.format(arg) | 305 ns (*) | 340 ns (+12%) | 229 ns (-25%) fmt="{:x}"; arg=123; fmt.format(arg) | 307 ns (*) | 353 ns (+15%) | 222 ns (-28%) fmt="%s"; arg="abc"; fmt % arg | 92 ns (*) | 117 ns (+27%) | 57 ns (-38%) fmt="%s"; arg=123; fmt % arg | 113 ns (*) | 151 ns (+34%) | 98 ns (-13%) fmt="%s"; arg=12.345; fmt % arg | 273 ns (*) | 559 ns (+105%) | 444 ns (+63%) fmt="%s"; arg=2j; fmt % arg | 449 ns (*) | 673 ns (+50%) | 366 ns (-19%) fmt="%s"; arg=1+2j; fmt % arg | 571 ns (*) | 769 ns (+35%) | 539 ns (-6%) fmt="%d"; arg=123; fmt % arg | 418 ns (*) | 223 ns (-47%) | 101 ns (-76%) fmt="%x"; arg=123; fmt % arg | 416 ns (*) | 274 ns (-34%) | 97 ns (-77%) --------------------------------------+-------------+----------------+----------------- Total | 5.49 us (*) | 6.39 us (+16%) | 4.2 us (-23%) --------------------------------------+-------------+----------------+----------------- ---------------------------------------------+-------------+----------------+----------------- Basic format, long output | bench-2.7 | bench-3.2 | bench-3.3-writer ---------------------------------------------+-------------+----------------+----------------- fmt="{}"; arg="A" * 4096; fmt.format(arg) | 401 ns (*) | 843 ns (+110%) | 138 ns (-66%) fmt="{}"; arg=2**4096 - 1; fmt.format(arg) | 33.9 us (*) | 34.3 us | 34 us fmt="%s"; arg="A" * 4096; fmt % arg | 305 ns (*) | 680 ns (+123%) | 56 ns (-82%) fmt="%s"; arg=2**4096 - 1; fmt % arg | 34 us (*) | 34.2 us | 33.8 us fmt="{:d}"; arg=2**4096 - 1; fmt.format(arg) | 34.1 us (*) | 34.4 us | 34 us fmt="{:x}"; arg=2**4096 - 1; fmt.format(arg) | 2.89 us (*) | 2.99 us | 1.98 us (-32%) fmt="%d"; arg=2**4096 - 1; fmt % arg | 34.1 us (*) | 35.4 us | 33.8 us fmt="%x"; arg=2**4096 - 1; fmt % arg | 2.75 us (*) | 3.79 us (+37%) | 1.82 us (-34%) ---------------------------------------------+-------------+----------------+----------------- Total | 142 us (*) | 147 us | 140 us ---------------------------------------------+-------------+----------------+----------------- --------------------------------------------------------+-------------+-----------------+----------------- Basic format, huge output | bench-2.7 | bench-3.2 | bench-3.3-writer --------------------------------------------------------+-------------+-----------------+----------------- fmt="{}"; arg="A" * (10 * 1024 * 1024); fmt.format(arg) | 1.78 ms (*) | 10.8 ms (+508%) | 138 ns (-100%) fmt="%s"; arg="A" * (10 * 1024 * 1024); fmt % arg | 1.78 ms (*) | 10.7 ms (+505%) | 56 ns (-100%) fmt="{}"; arg=2 ** 123456 - 1; fmt.format(arg) | 28.8 ms (*) | 28.8 ms | 28.9 ms fmt="%s"; arg=2 ** 123456 - 1; fmt % arg | 28.7 ms (*) | 29 ms | 28.7 ms --------------------------------------------------------+-------------+-----------------+----------------- Total | 61.1 ms (*) | 79.3 ms (+30%) | 57.6 ms (-6%) --------------------------------------------------------+-------------+-----------------+----------------- ---------------------------------------------+-------------+----------------+----------------- One argument with ASCII prefix, short output | bench-2.7 | bench-3.2 | bench-3.3-writer ---------------------------------------------+-------------+----------------+----------------- fmt="x={}"; arg="abc"; fmt.format(arg) | 191 ns (*) | 195 ns | 216 ns (+13%) fmt="x={}"; arg=123; fmt.format(arg) | 222 ns (*) | 233 ns (+5%) | 233 ns (+5%) fmt="x={}"; arg=12.345; fmt.format(arg) | 376 ns (*) | 714 ns (+90%) | 671 ns (+78%) fmt="x={}"; arg=2j; fmt.format(arg) | 833 ns (*) | 858 ns | 563 ns (-32%) fmt="x={}"; arg=1+2j; fmt.format(arg) | 923 ns (*) | 956 ns | 731 ns (-21%) fmt="x=%s"; arg="abc"; fmt % arg | 99 ns (*) | 111 ns (+12%) | 129 ns (+31%) fmt="x=%s"; arg=123; fmt % arg | 119 ns (*) | 154 ns (+30%) | 143 ns (+20%) fmt="x=%s"; arg=12.345; fmt % arg | 274 ns (*) | 553 ns (+102%) | 532 ns (+94%) fmt="x=%s"; arg=2j; fmt % arg | 437 ns (*) | 651 ns (+49%) | 446 ns fmt="x=%s"; arg=1+2j; fmt % arg | 576 ns (*) | 739 ns (+28%) | 631 ns (+10%) ---------------------------------------------+-------------+----------------+----------------- Total | 4.05 us (*) | 5.16 us (+28%) | 4.29 us (+6%) ---------------------------------------------+-------------+----------------+----------------- ---------------------------------------------+-------------+----------------+----------------- One argument with ASCII suffix, short output | bench-2.7 | bench-3.2 | bench-3.3-writer ---------------------------------------------+-------------+----------------+----------------- fmt="{}:"; arg="abc"; fmt.format(arg) | 220 ns (*) | 208 ns (-5%) | 222 ns fmt="{}:"; arg=123; fmt.format(arg) | 248 ns (*) | 244 ns | 244 ns fmt="{}:"; arg=12.345; fmt.format(arg) | 403 ns (*) | 719 ns (+78%) | 695 ns (+72%) fmt="{}:"; arg=2j; fmt.format(arg) | 856 ns (*) | 883 ns | 556 ns (-35%) fmt="{}:"; arg=1+2j; fmt.format(arg) | 944 ns (*) | 956 ns | 736 ns (-22%) fmt="%s:"; arg="abc"; fmt % arg | 96 ns (*) | 114 ns (+19%) | 129 ns (+34%) fmt="%s:"; arg=123; fmt % arg | 112 ns (*) | 160 ns (+43%) | 144 ns (+28%) fmt="%s:"; arg=12.345; fmt % arg | 272 ns (*) | 550 ns (+102%) | 529 ns (+95%) fmt="%s:"; arg=2j; fmt % arg | 447 ns (*) | 644 ns (+44%) | 448 ns fmt="%s:"; arg=1+2j; fmt % arg | 569 ns (*) | 729 ns (+28%) | 623 ns (+10%) ---------------------------------------------+-------------+----------------+----------------- Total | 4.17 us (*) | 5.21 us (+25%) | 4.32 us ---------------------------------------------+-------------+----------------+----------------- ------------------------------------------------------------+-------------+-----------------+----------------- Huge long output with prefix and suffix | bench-2.7 | bench-3.2 | bench-3.3-writer ------------------------------------------------------------+-------------+-----------------+----------------- fmt="{}"; arg="A" * (10 * 1024 * 1024); fmt.format(arg) | 1.79 ms (*) | 10.8 ms (+502%) | 139 ns (-100%) fmt="%s"; arg="A" * (10 * 1024 * 1024); fmt % arg | 1.78 ms (*) | 10.8 ms (+508%) | 56 ns (-100%) fmt="x=[{}]"; arg="A" * (10 * 1024 * 1024); fmt.format(arg) | 1.79 ms (*) | 10.8 ms (+506%) | 1.73 ms fmt="x=[%s]"; arg="A" * (10 * 1024 * 1024); fmt % arg | 1.78 ms (*) | 10.8 ms (+507%) | 1.73 ms fmt="{}"; arg=2 ** 123456 - 1; fmt.format(arg) | 28.8 ms (*) | 28.7 ms | 28.7 ms fmt="%s"; arg=2 ** 123456 - 1; fmt % arg | 28.8 ms (*) | 28.8 ms | 28.6 ms fmt="x=[{}]"; arg=2 ** 123456 - 1; fmt.format(arg) | 28.8 ms (*) | 28.8 ms | 28.8 ms fmt="x=[%s]"; arg=2 ** 123456 - 1; fmt % arg | 28.8 ms (*) | 28.8 ms | 28.7 ms ------------------------------------------------------------+-------------+-----------------+----------------- Total | 122 ms (*) | 158 ms (+29%) | 118 ms ------------------------------------------------------------+-------------+-----------------+----------------- --------------------------------------------+-------------+----------------+----------------- Many short arguments | bench-2.7 | bench-3.2 | bench-3.3-writer --------------------------------------------+-------------+----------------+----------------- fmt="{0}"*1024; fmt.format("abc") | 60.7 us (*) | 55.4 us (-9%) | 69.4 us (+14%) fmt="{0}"*1024; fmt.format(123) | 85.6 us (*) | 94.3 us (+10%) | 88.5 us fmt="{0}"*1024; fmt.format(12.345) | 239 us (*) | 436 us (+83%) | 445 us (+86%) fmt="{0}"*1024; fmt.format(2j) | 655 us (*) | 571 us (-13%) | 371 us (-43%) fmt="{0}"*1024; fmt.format(1+2j) | 761 us (*) | 668 us (-12%) | 543 us (-29%) fmt="{0}{1}"*1024; fmt.format("abc", 123) | 147 us (*) | 154 us (+5%) | 158 us (+8%) fmt="{0}-"*1024; fmt.format("abc") | 61.9 us (*) | 56.9 us (-8%) | 82 us (+32%) fmt="{0}-"*1024; fmt.format(123) | 86.8 us (*) | 96.2 us (+11%) | 103 us (+19%) fmt="{0}-{1}="*1024; fmt.format("abc", 123) | 147 us (*) | 155 us (+5%) | 186 us (+26%) --------------------------------------------+-------------+----------------+----------------- Total | 2.24 ms (*) | 2.29 ms | 2.05 ms (-9%) --------------------------------------------+-------------+----------------+----------------- -----------------------------------------------------------------------+-------------+-----------------+----------------- Many long arguments | bench-2.7 | bench-3.2 | bench-3.3-writer -----------------------------------------------------------------------+-------------+-----------------+----------------- fmt="{0}"*1024; arg="A" * 4096; fmt.format(arg) | 271 us (*) | 2.74 ms (+910%) | 217 us (-20%) fmt="{0}"*1024; arg=2**4096 - 1; fmt.format(arg) | 34.5 ms (*) | 35.1 ms | 34.7 ms fmt="{0}{1}"*1024; args=("A" * 4096, 2**4096 - 1); fmt.format(*args) | 34.9 ms (*) | 38.1 ms (+9%) | 34.8 ms fmt="{0}-"*1024; arg="A" * 4096; fmt.format(arg) | 337 us (*) | 2.71 ms (+705%) | 295 us (-12%) fmt="{0}-"*1024; arg=2**4096 - 1; fmt.format(arg) | 34.5 ms (*) | 35.3 ms | 34.7 ms fmt="{0}-{1}="*1024; args=("A" * 4096, 2**4096 - 1); fmt.format(*args) | 34.9 ms (*) | 38.1 ms (+9%) | 35 ms -----------------------------------------------------------------------+-------------+-----------------+----------------- Total | 139 ms (*) | 152 ms (+9%) | 140 ms -----------------------------------------------------------------------+-------------+-----------------+----------------- -----------------------------------------------------------------------------------------+------------+---------------+----------------- Keywords | bench-2.7 | bench-3.2 | bench-3.3-writer -----------------------------------------------------------------------------------------+------------+---------------+----------------- s="The {k1} is {k2} the {k3}."; args={"k1": "x", "k2": "y", "k3": "z"}; s.format(**args) | 473 ns (*) | 561 ns (+19%) | 640 ns (+35%) s="The %(k1)s is %(k2)s the %(k3)s."; args={"k1":"x","k2":"y","k3":"z",}; s % args | 284 ns (*) | 313 ns (+10%) | 450 ns (+58%) -----------------------------------------------------------------------------------------+------------+---------------+----------------- Total | 757 ns (*) | 874 ns (+15%) | 1.09 us (+44%) -----------------------------------------------------------------------------------------+------------+---------------+----------------- ------------------------------------------+-------------+----------------+----------------- Align to 10 characters | bench-2.7 | bench-3.2 | bench-3.3-writer ------------------------------------------+-------------+----------------+----------------- fmt="{:<10}"; arg="abc"; fmt.format(arg) | 231 ns (*) | 286 ns (+24%) | 226 ns fmt="{:<10}"; arg=123; fmt.format(arg) | 308 ns (*) | 442 ns (+43%) | 381 ns (+24%) fmt="{:<10}"; arg=12.345; fmt.format(arg) | 466 ns (*) | 939 ns (+102%) | 918 ns (+97%) fmt="{:<10}"; arg=2j; fmt.format(arg) | 706 ns (*) | 934 ns (+32%) | 676 ns fmt="{:<10}"; arg=1+2j; fmt.format(arg) | 754 ns (*) | 969 ns (+29%) | 749 ns fmt="{:>10}"; arg="abc"; fmt.format(arg) | 245 ns (*) | 290 ns (+18%) | 227 ns (-8%) fmt="{:>10}"; arg=123; fmt.format(arg) | 306 ns (*) | 442 ns (+45%) | 382 ns (+25%) fmt="{:>10}"; arg=12.345; fmt.format(arg) | 480 ns (*) | 925 ns (+93%) | 920 ns (+92%) fmt="{:>10}"; arg=2j; fmt.format(arg) | 696 ns (*) | 924 ns (+33%) | 672 ns fmt="{:>10}"; arg=1+2j; fmt.format(arg) | 753 ns (*) | 966 ns (+28%) | 748 ns fmt="{:^10}"; arg="abc"; fmt.format(arg) | 235 ns (*) | 291 ns (+24%) | 238 ns fmt="{:^10}"; arg=123; fmt.format(arg) | 311 ns (*) | 446 ns (+43%) | 391 ns (+26%) fmt="{:^10}"; arg=12.345; fmt.format(arg) | 501 ns (*) | 948 ns (+89%) | 923 ns (+84%) fmt="{:^10}"; arg=2j; fmt.format(arg) | 710 ns (*) | 933 ns (+31%) | 693 ns fmt="{:^10}"; arg=1+2j; fmt.format(arg) | 747 ns (*) | 970 ns (+30%) | 739 ns ------------------------------------------+-------------+----------------+----------------- Total | 7.45 us (*) | 10.7 us (+44%) | 8.88 us (+19%) ------------------------------------------+-------------+----------------+----------------- --------------------------------------------+-------------+-----------------+----------------- Align to 4096 characters | bench-2.7 | bench-3.2 | bench-3.3-writer --------------------------------------------+-------------+-----------------+----------------- fmt="{:<4096}"; arg="abc"; fmt.format(arg) | 587 ns (*) | 1.3 us (+122%) | 380 ns (-35%) fmt="{:<4096}"; arg=123; fmt.format(arg) | 674 ns (*) | 1.47 us (+118%) | 538 ns (-20%) fmt="{:<4096}"; arg=12.345; fmt.format(arg) | 982 ns (*) | 2.1 us (+114%) | 1.19 us (+21%) fmt="{:<4096}"; arg=2j; fmt.format(arg) | 1.22 us (*) | 2.19 us (+80%) | 893 ns (-26%) fmt="{:<4096}"; arg=1+2j; fmt.format(arg) | 1.29 us (*) | 2.18 us (+69%) | 962 ns (-26%) fmt="{:>4096}"; arg="abc"; fmt.format(arg) | 589 ns (*) | 1.28 us (+117%) | 375 ns (-36%) fmt="{:>4096}"; arg=123; fmt.format(arg) | 680 ns (*) | 1.44 us (+112%) | 530 ns (-22%) fmt="{:>4096}"; arg=12.345; fmt.format(arg) | 990 ns (*) | 2.08 us (+110%) | 1.18 us (+19%) fmt="{:>4096}"; arg=2j; fmt.format(arg) | 1.21 us (*) | 2.37 us (+95%) | 886 ns (-27%) fmt="{:>4096}"; arg=1+2j; fmt.format(arg) | 1.29 us (*) | 2.4 us (+86%) | 968 ns (-25%) fmt="{:^4096}"; arg="abc"; fmt.format(arg) | 631 ns (*) | 1.32 us (+109%) | 404 ns (-36%) fmt="{:^4096}"; arg=123; fmt.format(arg) | 689 ns (*) | 1.46 us (+111%) | 558 ns (-19%) fmt="{:^4096}"; arg=12.345; fmt.format(arg) | 1 us (*) | 2.07 us (+107%) | 1.2 us (+19%) fmt="{:^4096}"; arg=2j; fmt.format(arg) | 1.25 us (*) | 2.28 us (+83%) | 934 ns (-25%) fmt="{:^4096}"; arg=1+2j; fmt.format(arg) | 1.32 us (*) | 2.32 us (+75%) | 996 ns (-25%) --------------------------------------------+-------------+-----------------+----------------- Total | 14.4 us (*) | 28.3 us (+96%) | 12 us (-17%) --------------------------------------------+-------------+-----------------+----------------- -------------------------------------------------+-------------+---------------+----------------- Format number in the locale | bench-2.7 | bench-3.2 | bench-3.3-writer -------------------------------------------------+-------------+---------------+----------------- fmt="{:,}"; arg=123; fmt.format(arg) | 306 ns (*) | 341 ns (+11%) | 365 ns (+19%) fmt="{:,}"; arg=2**4096 - 1; fmt.format(arg) | 42.1 us (*) | 41.5 us | 40.6 us fmt="{:,}"; arg=2 ** 123456 - 1; fmt.format(arg) | 28.9 ms (*) | 29 ms | 28.9 ms -------------------------------------------------+-------------+---------------+----------------- Total | 29 ms (*) | 29.1 ms | 28.9 ms -------------------------------------------------+-------------+---------------+----------------- ------------------------------------+-------------+-----------+----------------- str(int) | bench-2.7 | bench-3.2 | bench-3.3-writer ------------------------------------+-------------+-----------+----------------- number=123; str(number) | 137 ns (*) | 137 ns | 185 ns (+35%) number=2**4096 - 1; str(number) | 33.6 us (*) | 34 us | 34 us number=2 ** 123456 - 1; str(number) | 28.7 ms (*) | 28.8 ms | 28.8 ms ------------------------------------+-------------+-----------+----------------- Total | 28.7 ms (*) | 28.8 ms | 28.8 ms ------------------------------------+-------------+-----------+----------------- ---------------------------------------------+-------------+----------------+----------------- Summary | bench-2.7 | bench-3.2 | bench-3.3-writer ---------------------------------------------+-------------+----------------+----------------- Basic format, short ASCII output | 5.49 us (*) | 6.39 us (+16%) | 4.2 us (-23%) Basic format, long output | 142 us (*) | 147 us | 140 us Basic format, huge output | 61.1 ms (*) | 79.3 ms (+30%) | 57.6 ms (-6%) One argument with ASCII prefix, short output | 4.05 us (*) | 5.16 us (+28%) | 4.29 us (+6%) One argument with ASCII suffix, short output | 4.17 us (*) | 5.21 us (+25%) | 4.32 us Huge long output with prefix and suffix | 122 ms (*) | 158 ms (+29%) | 118 ms Many short arguments | 2.24 ms (*) | 2.29 ms | 2.05 ms (-9%) Many long arguments | 139 ms (*) | 152 ms (+9%) | 140 ms Keywords | 757 ns (*) | 874 ns (+15%) | 1.09 us (+44%) Align to 10 characters | 7.45 us (*) | 10.7 us (+44%) | 8.88 us (+19%) Align to 4096 characters | 14.4 us (*) | 28.3 us (+96%) | 12 us (-17%) Format number in the locale | 29 ms (*) | 29.1 ms | 28.9 ms str(int) | 28.7 ms (*) | 28.8 ms | 28.8 ms ---------------------------------------------+-------------+----------------+----------------- Total | 383 ms (*) | 450 ms (+18%) | 376 ms ---------------------------------------------+-------------+----------------+-----------------