Common platform: CPU model: Intel(R) Core(TM) i7-2600 CPU @ 3.40GHz CFLAGS: -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes Platform: Linux-3.8.1-201.fc18.x86_64-x86_64-with-fedora-18-Spherical_Cow Bits: int=32, long=64, long long=64, pointer=64 Python unicode implementation: PEP 393 Platform of campaign orig: Date: 2013-04-03 22:28:00 SCM: hg revision=a8a238cf59c7 branch=default date="2013-04-03 13:20 -0400" Python version: 3.4.0a0 (default:a8a238cf59c7, Apr 3 2013, 22:27:54) [GCC 4.7.2 20121109 (Red Hat 4.7.2-8)] Platform of campaign patch: Date: 2013-04-03 22:24:28 SCM: hg revision=a8a238cf59c7+ branch=default date="2013-04-03 13:20 -0400" Python version: 3.4.0a0 (default:a8a238cf59c7+, Apr 3 2013, 21:50:35) [GCC 4.7.2 20121109 (Red Hat 4.7.2-8)] ----------------------------------+------------+------- equal (is) | orig | patch ----------------------------------+------------+------- equal (is), 'A', 1 | 25 ns (*) | 25 ns equal (is), 'A', 2 | 25 ns (*) | 25 ns equal (is), 'A', 3 | 25 ns (*) | 25 ns equal (is), 'A', 10 | 24 ns (*) | 25 ns equal (is), 'A', 1000 | 24 ns (*) | 25 ns equal (is), 'A', 1000000 | 25 ns (*) | 25 ns equal (is), 'é', 1 | 25 ns (*) | 25 ns equal (is), 'é', 2 | 25 ns (*) | 25 ns equal (is), 'é', 3 | 25 ns (*) | 25 ns equal (is), 'é', 10 | 24 ns (*) | 25 ns equal (is), 'é', 1000 | 24 ns (*) | 25 ns equal (is), 'é', 1000000 | 25 ns (*) | 26 ns equal (is), '€', 1 | 25 ns (*) | 25 ns equal (is), '€', 2 | 25 ns (*) | 25 ns equal (is), '€', 3 | 25 ns (*) | 25 ns equal (is), '€', 10 | 24 ns (*) | 25 ns equal (is), '€', 1000 | 25 ns (*) | 25 ns equal (is), '€', 1000000 | 25 ns (*) | 26 ns equal (is), '\U0010ffff', 1 | 25 ns (*) | 25 ns equal (is), '\U0010ffff', 2 | 25 ns (*) | 26 ns equal (is), '\U0010ffff', 3 | 25 ns (*) | 25 ns equal (is), '\U0010ffff', 10 | 25 ns (*) | 25 ns equal (is), '\U0010ffff', 1000 | 26 ns (*) | 25 ns equal (is), '\U0010ffff', 1000000 | 25 ns (*) | 25 ns ----------------------------------+------------+------- Total | 594 ns (*) | 605 ns ----------------------------------+------------+------- -----------------------------+-------------+-------------- equal | orig | patch -----------------------------+-------------+-------------- equal, 'A', 1 | 25 ns (*) | 26 ns equal, 'A', 2 | 28 ns (*) | 28 ns equal, 'A', 3 | 29 ns (*) | 30 ns equal, 'A', 10 | 29 ns (*) | 30 ns equal, 'A', 1000 | 55 ns (*) | 58 ns equal, 'A', 1000000 | 40.9 us (*) | 40.5 us equal, 'é', 1 | 25 ns (*) | 25 ns equal, 'é', 2 | 32 ns (*) | 31 ns equal, 'é', 3 | 29 ns (*) | 30 ns equal, 'é', 10 | 29 ns (*) | 30 ns (+5%) equal, 'é', 1000 | 59 ns (*) | 58 ns equal, 'é', 1000000 | 39.9 us (*) | 39.6 us equal, '€', 1 | 29 ns (*) | 28 ns equal, '€', 2 | 28 ns (*) | 28 ns equal, '€', 3 | 29 ns (*) | 30 ns (+5%) equal, '€', 10 | 29 ns (*) | 30 ns equal, '€', 1000 | 83 ns (*) | 84 ns equal, '€', 1000000 | 102 us (*) | 113 us (+11%) equal, '\U0010ffff', 1 | 28 ns (*) | 28 ns equal, '\U0010ffff', 2 | 32 ns (*) | 31 ns equal, '\U0010ffff', 3 | 28 ns (*) | 30 ns (+7%) equal, '\U0010ffff', 10 | 33 ns (*) | 35 ns (+7%) equal, '\U0010ffff', 1000 | 138 ns (*) | 137 ns equal, '\U0010ffff', 1000000 | 284 us (*) | 286 us -----------------------------+-------------+-------------- Total | 467 us (*) | 480 us -----------------------------+-------------+-------------- -------------------------------+------------+------------- text[0] | orig | patch -------------------------------+------------+------------- text[0], 'A', 1 | 28 ns (*) | 28 ns text[0], 'A', 2 | 30 ns (*) | 27 ns (-7%) text[0], 'A', 3 | 29 ns (*) | 28 ns text[0], 'A', 10 | 30 ns (*) | 28 ns (-8%) text[0], 'A', 1000 | 31 ns (*) | 27 ns (-11%) text[0], 'A', 1000000 | 31 ns (*) | 28 ns (-8%) text[0], 'é', 1 | 28 ns (*) | 28 ns text[0], 'é', 2 | 29 ns (*) | 27 ns text[0], 'é', 3 | 29 ns (*) | 27 ns text[0], 'é', 10 | 30 ns (*) | 27 ns (-8%) text[0], 'é', 1000 | 31 ns (*) | 27 ns (-10%) text[0], 'é', 1000000 | 31 ns (*) | 27 ns (-12%) text[0], '€', 1 | 25 ns (*) | 26 ns text[0], '€', 2 | 29 ns (*) | 27 ns (-7%) text[0], '€', 3 | 29 ns (*) | 28 ns (-6%) text[0], '€', 10 | 31 ns (*) | 27 ns (-12%) text[0], '€', 1000 | 31 ns (*) | 27 ns (-11%) text[0], '€', 1000000 | 31 ns (*) | 27 ns (-12%) text[0], '\U0010ffff', 1 | 25 ns (*) | 26 ns text[0], '\U0010ffff', 2 | 30 ns (*) | 28 ns (-8%) text[0], '\U0010ffff', 3 | 30 ns (*) | 27 ns (-9%) text[0], '\U0010ffff', 10 | 31 ns (*) | 28 ns (-11%) text[0], '\U0010ffff', 1000 | 31 ns (*) | 27 ns (-11%) text[0], '\U0010ffff', 1000000 | 31 ns (*) | 28 ns (-10%) -------------------------------+------------+------------- Total | 707 ns (*) | 656 ns (-7%) -------------------------------+------------+------------- -------------------------------+------------+------------- text[1] | orig | patch -------------------------------+------------+------------- text[1], 'A', 1 | 24 ns (*) | 25 ns text[1], 'A', 2 | 28 ns (*) | 27 ns text[1], 'A', 3 | 28 ns (*) | 30 ns text[1], 'A', 10 | 29 ns (*) | 32 ns (+8%) text[1], 'A', 1000 | 30 ns (*) | 32 ns (+8%) text[1], 'A', 1000000 | 30 ns (*) | 32 ns (+8%) text[1], 'é', 1 | 24 ns (*) | 25 ns text[1], 'é', 2 | 28 ns (*) | 27 ns text[1], 'é', 3 | 28 ns (*) | 30 ns text[1], 'é', 10 | 29 ns (*) | 32 ns (+8%) text[1], 'é', 1000 | 30 ns (*) | 32 ns (+8%) text[1], 'é', 1000000 | 30 ns (*) | 32 ns (+7%) text[1], '€', 1 | 24 ns (*) | 25 ns text[1], '€', 2 | 29 ns (*) | 28 ns text[1], '€', 3 | 29 ns (*) | 31 ns (+6%) text[1], '€', 10 | 30 ns (*) | 32 ns (+5%) text[1], '€', 1000 | 30 ns (*) | 33 ns (+9%) text[1], '€', 1000000 | 30 ns (*) | 33 ns (+9%) text[1], '\U0010ffff', 1 | 24 ns (*) | 25 ns text[1], '\U0010ffff', 2 | 30 ns (*) | 28 ns (-7%) text[1], '\U0010ffff', 3 | 30 ns (*) | 32 ns (+7%) text[1], '\U0010ffff', 10 | 31 ns (*) | 34 ns (+10%) text[1], '\U0010ffff', 1000 | 30 ns (*) | 33 ns (+8%) text[1], '\U0010ffff', 1000000 | 30 ns (*) | 33 ns (+9%) -------------------------------+------------+------------- Total | 688 ns (*) | 721 ns -------------------------------+------------+------------- --------------------------------+-------------+--------------- text[-1] | orig | patch --------------------------------+-------------+--------------- text[-1], 'A', 1 | 28 ns (*) | 27 ns text[-1], 'A', 2 | 29 ns (*) | 28 ns text[-1], 'A', 3 | 29 ns (*) | 28 ns text[-1], 'A', 10 | 29 ns (*) | 28 ns text[-1], 'A', 1000 | 58 ns (*) | 28 ns (-51%) text[-1], 'A', 1000000 | 42.7 us (*) | 27 ns (-100%) text[-1], 'é', 1 | 28 ns (*) | 27 ns text[-1], 'é', 2 | 29 ns (*) | 28 ns text[-1], 'é', 3 | 29 ns (*) | 28 ns text[-1], 'é', 10 | 29 ns (*) | 28 ns text[-1], 'é', 1000 | 60 ns (*) | 28 ns (-54%) text[-1], 'é', 1000000 | 42.3 us (*) | 27 ns (-100%) text[-1], '€', 1 | 25 ns (*) | 26 ns text[-1], '€', 2 | 29 ns (*) | 27 ns (-6%) text[-1], '€', 3 | 34 ns (*) | 33 ns text[-1], '€', 10 | 30 ns (*) | 28 ns (-7%) text[-1], '€', 1000 | 83 ns (*) | 28 ns (-67%) text[-1], '€', 1000000 | 99.5 us (*) | 28 ns (-100%) text[-1], '\U0010ffff', 1 | 25 ns (*) | 26 ns text[-1], '\U0010ffff', 2 | 30 ns (*) | 28 ns (-6%) text[-1], '\U0010ffff', 3 | 30 ns (*) | 28 ns (-6%) text[-1], '\U0010ffff', 10 | 31 ns (*) | 28 ns (-9%) text[-1], '\U0010ffff', 1000 | 138 ns (*) | 28 ns (-79%) text[-1], '\U0010ffff', 1000000 | 265 us (*) | 27 ns (-100%) --------------------------------+-------------+--------------- Total | 450 us (*) | 669 ns (-100%) --------------------------------+-------------+--------------- --------------------------------+-------------+------------- text[-2] | orig | patch --------------------------------+-------------+------------- text[-2], 'A', 1 | 24 ns (*) | 25 ns text[-2], 'A', 2 | 29 ns (*) | 27 ns text[-2], 'A', 3 | 29 ns (*) | 30 ns text[-2], 'A', 10 | 29 ns (*) | 31 ns (+9%) text[-2], 'A', 1000 | 59 ns (*) | 59 ns text[-2], 'A', 1000000 | 42.2 us (*) | 42.8 us text[-2], 'é', 1 | 24 ns (*) | 25 ns text[-2], 'é', 2 | 28 ns (*) | 27 ns text[-2], 'é', 3 | 29 ns (*) | 29 ns text[-2], 'é', 10 | 29 ns (*) | 32 ns (+11%) text[-2], 'é', 1000 | 60 ns (*) | 59 ns text[-2], 'é', 1000000 | 42.1 us (*) | 42 us text[-2], '€', 1 | 24 ns (*) | 25 ns text[-2], '€', 2 | 29 ns (*) | 27 ns (-8%) text[-2], '€', 3 | 29 ns (*) | 30 ns text[-2], '€', 10 | 30 ns (*) | 31 ns (+5%) text[-2], '€', 1000 | 83 ns (*) | 83 ns text[-2], '€', 1000000 | 101 us (*) | 101 us text[-2], '\U0010ffff', 1 | 24 ns (*) | 25 ns text[-2], '\U0010ffff', 2 | 30 ns (*) | 27 ns (-10%) text[-2], '\U0010ffff', 3 | 30 ns (*) | 32 ns (+6%) text[-2], '\U0010ffff', 10 | 31 ns (*) | 33 ns (+5%) text[-2], '\U0010ffff', 1000 | 135 ns (*) | 136 ns text[-2], '\U0010ffff', 1000000 | 264 us (*) | 261 us --------------------------------+-------------+------------- Total | 449 us (*) | 448 us --------------------------------+-------------+------------- -----------+-------------+--------------- Summary | orig | patch -----------+-------------+--------------- equal (is) | 594 ns (*) | 605 ns equal | 467 us (*) | 480 us text[0] | 707 ns (*) | 656 ns (-7%) text[1] | 688 ns (*) | 721 ns text[-1] | 450 us (*) | 669 ns (-100%) text[-2] | 449 us (*) | 448 us -----------+-------------+--------------- Total | 1.37 ms (*) | 931 us (-32%) -----------+-------------+---------------