Skip to content

Instantly share code, notes, and snippets.

@sweeneyde
Last active July 16, 2021 02:53
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sweeneyde/fc20ed5e72dc6b0f3b41c0abaf4ec3be to your computer and use it in GitHub Desktop.
Save sweeneyde/fc20ed5e72dc6b0f3b41c0abaf4ec3be to your computer and use it in GitHub Desktop.
from pathlib import Path
CPYTHON = Path(r"C:\Users\sween\Source\Repos\cpython2\cpython")
def generate_benchmarks():
c_file = (CPYTHON / "Objects" / "unicodeobject.c").read_text()
assert ord(max(c_file)) <= 255
python_file = (CPYTHON / "Lib" / "_pydecimal.py").read_text()
assert ord(max(python_file)) <= 255
english_file = (CPYTHON / "Doc" / "library" / "stdtypes.rst").read_text()
assert ord(max(english_file)) >= 256
binary_file = (CPYTHON / "PCBuild" / "amd64" / "python_d.exe").read_bytes()
files = {
"c": c_file,
"py": python_file,
"en": english_file,
"bin": binary_file,
}
lengths = [10, 15, 20, 30, 40, 60, 80, 120, 160, 240, 320]
for m in lengths:
for file_label, haystack in files.items():
n = len(haystack)
start_indexes = [(1_000_003 * i) % (n - m) for i in range(12)]
needles = [haystack[i:i+m] for i in start_indexes]
for needle in needles:
yield file_label, haystack, needle
def run_benchmarks():
from pyperf import Runner
runner = Runner()
# silence the warnings
runner.parse_args()
runner.args.quiet = True
runner._process_priority = lambda *args: None
used = set()
for file_label, haystack, needle in generate_benchmarks():
name = f"{file_label}:m={len(needle)}:{needle[:5]!a}...{needle[-5:]!a}"
if name not in used:
used.add(name)
params = {
"name": name,
"stmt": "haystack.count(needle)",
"globals": {"needle": needle, "haystack": haystack},
"inner_loops": 3,
}
runner.timeit(**params)
if __name__ == "__main__":
run_benchmarks()
PS C:\Users\sween\Source\Repos\cpython2\cpython> .\python.bat -m pyperf compare_to .\real-life.json .\real-life-bm-refactored.py -G
Running Release|x64 interpreter...
Slower (76):
- bin:m=15:b'\xccz\x00\xff\xcc'...b'\x00\xff\xccz\x00': 17.8 us +- 0.2 us -> 43.0 us +- 0.4 us: 2.41x slower
- bin:m=20:b'\x00\x00\xc0\x00\x00'...b'0\xa0@\xa0\x00': 7.03 us +- 0.10 us -> 16.2 us +- 0.1 us: 2.31x slower
- bin:m=10:b'\xf5\x04n|\xf5'...b'\x04\x9e~~\n': 6.24 us +- 0.14 us -> 14.2 us +- 0.1 us: 2.27x slower
- bin:m=10:b'\xffBBB\xff'...b'BBB\xffB': 8.52 us +- 0.11 us -> 17.8 us +- 0.1 us: 2.09x slower
- bin:m=20:b'BB\xffBB'...b'BBB\xffB': 4.88 us +- 0.07 us -> 9.78 us +- 0.10 us: 2.01x slower
- bin:m=160:b'\x00\x00\x00\x00\x00'...b'\x00\x07\x00\x00\xe0': 16.8 us +- 0.1 us -> 32.0 us +- 0.3 us: 1.91x slower
- bin:m=120:b'\x80J\x00\xb2\x80'...b'\xcd\xa8z\x00\xcf': 19.2 us +- 0.3 us -> 34.6 us +- 0.4 us: 1.81x slower
- bin:m=15:b'\x00\x00\x00\x00\x00'...b'\x00\x00\x00\x00\x00': 11.4 us +- 0.2 us -> 19.9 us +- 0.3 us: 1.76x slower
- bin:m=30:b'\x00\xff\xccz\x00'...b'\xff\xccz\x00\xff': 27.4 us +- 0.3 us -> 46.5 us +- 0.5 us: 1.70x slower
- bin:m=10:b'\x00\x00\x00\x00\x00'...b'\x00\x00\x00\x00\x00': 15.5 us +- 0.3 us -> 26.3 us +- 0.3 us: 1.69x slower
- bin:m=10:b'\x00\x00\xccz\x00'...b'\xff\xccz\x00\xff': 34.5 us +- 0.3 us -> 56.2 us +- 0.9 us: 1.63x slower
- bin:m=10:b'z\x1da}\xc8'...b'\xcbr=.e': 8.86 us +- 0.13 us -> 14.3 us +- 0.2 us: 1.62x slower
- en:m=15:'====='...'=====': 8.90 us +- 0.08 us -> 13.9 us +- 0.1 us: 1.57x slower
- bin:m=20:b'\x00\x00\x00\x00\x00'...b'\x00\x00\x00\x00\x00': 10.9 us +- 0.1 us -> 16.8 us +- 0.2 us: 1.54x slower
- bin:m=80:b'\xcc\xcc\xcc\xcc\xcc'...b'\xcc\xcc\xcc\xcc\xcc': 3.55 us +- 0.06 us -> 5.41 us +- 0.05 us: 1.52x slower
- bin:m=120:b'\x93\xe5\xef\xc5X'...b'U^_L\xf9': 13.4 us +- 0.1 us -> 20.3 us +- 0.2 us: 1.52x slower
- bin:m=10:b'\xb9\x1a(\n\xad'...b'\xd7g~\x01\x1c': 10.6 us +- 0.1 us -> 15.3 us +- 0.1 us: 1.44x slower
- bin:m=40:b'\x00`.rd'...b'\x00\x00\x00@\x00': 15.8 us +- 0.2 us -> 22.7 us +- 0.3 us: 1.44x slower
- bin:m=320:b'\x00\x00\x00\x00\x00'...b'z\x00\x00\xa8z': 14.1 us +- 0.2 us -> 19.9 us +- 0.2 us: 1.41x slower
- bin:m=30:b'\x00\x00\x00\x00\x00'...b'\x00\x00\x00\x00\x00': 10.2 us +- 0.2 us -> 14.4 us +- 0.3 us: 1.40x slower
- bin:m=10:b'2b=p\xa6'...b'\xa5\xfb\xe3\xa5-': 10.6 us +- 0.1 us -> 14.3 us +- 0.2 us: 1.35x slower
- bin:m=20:b'\xca\x0b\x9e:\xf0'...b'b\x8b.\x00Q': 33.4 us +- 0.4 us -> 44.4 us +- 0.4 us: 1.33x slower
- bin:m=10:b'_n\xc7\xad\xab'...b"\xe3'\x8a\n\x8b": 10.9 us +- 0.1 us -> 14.2 us +- 0.2 us: 1.30x slower
- bin:m=160:b'\xff\xff\xaa\xee\xff'...b'\xd5\xff\xff\x82\xe4': 4.99 us +- 0.08 us -> 6.30 us +- 0.04 us: 1.26x slower
- c:m=320:'AUTHO'...'-----': 5.13 us +- 0.15 us -> 6.46 us +- 0.08 us: 1.26x slower
- py:m=40:'e sam'...'e() o': 18.4 us +- 0.2 us -> 23.2 us +- 0.3 us: 1.26x slower
- c:m=20:' '...' P': 52.8 us +- 0.7 us -> 66.5 us +- 0.7 us: 1.26x slower
- py:m=240:'), 2)'...'res t': 12.1 us +- 0.2 us -> 14.5 us +- 0.2 us: 1.20x slower
- bin:m=160:b'\x01\x01\x01\x01\x01'...b'\x01\x01\x01\x01\x01': 1.78 us +- 0.03 us -> 2.13 us +- 0.06 us: 1.20x slower
- c:m=15:' '...' ': 99.2 us +- 1.4 us -> 118 us +- 1 us: 1.19x slower
- py:m=320:' de'...'ce of': 8.05 us +- 0.09 us -> 9.49 us +- 0.10 us: 1.18x slower
- c:m=40:'data.'...'red "': 41.9 us +- 0.4 us -> 49.3 us +- 0.4 us: 1.18x slower
- bin:m=160:b'nfo_d'...b'wide_': 3.50 us +- 0.08 us -> 4.04 us +- 0.04 us: 1.16x slower
- py:m=240:'_exac'...'>>> _': 9.73 us +- 0.15 us -> 11.2 us +- 0.1 us: 1.15x slower
- c:m=10:';\n '...' if (': 107 us +- 1 us -> 123 us +- 1 us: 1.15x slower
- c:m=20:' '...' ': 80.9 us +- 0.7 us -> 92.5 us +- 1.1 us: 1.14x slower
- py:m=120:'w is '...' == 0': 14.5 us +- 0.2 us -> 16.4 us +- 0.2 us: 1.13x slower
- c:m=320:'n;\n '...');\n ': 25.3 us +- 0.3 us -> 28.4 us +- 0.2 us: 1.12x slower
- py:m=320:'args:'...' a nu': 8.95 us +- 0.17 us -> 10.1 us +- 0.1 us: 1.12x slower
- bin:m=30:b'\x00\x00\x00\x00\x00'...b'\xccz\x00\xff\xcc': 22.5 us +- 0.6 us -> 25.2 us +- 0.2 us: 1.12x slower
- c:m=240:' NULL'...'fix s': 15.5 us +- 0.2 us -> 17.3 us +- 0.3 us: 1.12x slower
- bin:m=120:b'^\\X\x96\xff'...b'\x10\x10\x10\r\r': 2.80 us +- 0.08 us -> 3.12 us +- 0.03 us: 1.11x slower
- bin:m=240:b'oft.W'...b'\x00\x00\\r\xa8': 10.4 us +- 0.2 us -> 11.6 us +- 0.1 us: 1.11x slower
- en:m=20:'+----'...'-----': 11.6 us +- 0.5 us -> 12.9 us +- 0.1 us: 1.11x slower
- bin:m=80:b'\x01\x00\x00\x00\x01'...b'\x00\x00\x00\x00\x00': 18.9 us +- 0.2 us -> 20.8 us +- 0.2 us: 1.10x slower
- c:m=40:'ND(s2'...' r': 40.0 us +- 0.7 us -> 43.9 us +- 0.4 us: 1.10x slower
- bin:m=160:b'|$0\x00u'...b'\xec(\x0f\xb6\x05': 3.90 us +- 0.06 us -> 4.24 us +- 0.04 us: 1.09x slower
- py:m=320:'/M). '...' foll': 8.44 us +- 0.09 us -> 9.18 us +- 0.12 us: 1.09x slower
- bin:m=60:b'\x00\x00\x00\x00\x00'...b'\x00\x00\x00\x00\x00': 10.2 us +- 0.2 us -> 11.1 us +- 0.2 us: 1.08x slower
- c:m=40:', ste'...'e_t c': 42.8 us +- 0.6 us -> 46.2 us +- 0.5 us: 1.08x slower
- py:m=240:' Dec'...'he sm': 10.5 us +- 0.2 us -> 11.3 us +- 0.1 us: 1.08x slower
- py:m=240:'alTup'..."'ROUN": 2.57 us +- 0.03 us -> 2.75 us +- 0.04 us: 1.07x slower
- bin:m=10:b'MZ\x90\x00\x03'...b'\x00\x00\x00\x04\x00': 20.9 us +- 0.2 us -> 22.4 us +- 0.2 us: 1.07x slower
- c:m=10:'/\n '...' ': 126 us +- 1 us -> 135 us +- 1 us: 1.07x slower
- bin:m=320:b'\xe3\xda\xbe\xfe%'...b'\xdb\xafY\x85j': 2.98 us +- 0.04 us -> 3.19 us +- 0.04 us: 1.07x slower
- bin:m=60:b'MZ\x90\x00\x03'...b'\x00\x00\x00\x00\x00': 20.4 us +- 0.3 us -> 21.8 us +- 0.3 us: 1.07x slower
- bin:m=15:b'\x80y\xe2\x91G'...b'\x84\xf1\x80O]': 26.0 us +- 0.2 us -> 27.8 us +- 0.3 us: 1.07x slower
- py:m=10:'rom h'...'ere o': 51.3 us +- 0.6 us -> 54.4 us +- 0.3 us: 1.06x slower
- py:m=160:'bject'...' if': 11.0 us +- 0.1 us -> 11.7 us +- 0.1 us: 1.06x slower
- bin:m=40:b'\x00\x00\x00\x00\x00'...b'\x00\x00\x00\x00\x00': 11.6 us +- 0.1 us -> 12.2 us +- 0.1 us: 1.06x slower
- py:m=10:'f mod'...'ulo i': 52.9 us +- 0.8 us -> 55.8 us +- 0.4 us: 1.05x slower
- c:m=320:' && *'...'fail:': 16.4 us +- 0.2 us -> 17.2 us +- 0.2 us: 1.05x slower
- bin:m=160:b'\xf7\x03\xd3\xbb\x92'...b'\xab\x00{,l': 14.0 us +- 0.2 us -> 14.8 us +- 0.1 us: 1.05x slower
- bin:m=120:b'MZ\x90\x00\x03'...b'e.\r\r\n': 2.86 us +- 0.11 us -> 3.00 us +- 0.06 us: 1.05x slower
- bin:m=240:b'\x00\xba\x94e\x00'...b'\xb2\x00\xb5\xb5\xb5': 12.1 us +- 0.2 us -> 12.7 us +- 0.2 us: 1.04x slower
- py:m=120:'s = _'...' is N': 13.0 us +- 0.1 us -> 13.5 us +- 0.1 us: 1.04x slower
- py:m=320:' '..."o'\n ": 9.22 us +- 0.08 us -> 9.58 us +- 0.12 us: 1.04x slower
- py:m=10:'ontex'...'t=Non': 28.3 us +- 0.3 us -> 29.4 us +- 0.2 us: 1.04x slower
- py:m=60:' Exte'...' D': 16.9 us +- 0.2 us -> 17.4 us +- 0.2 us: 1.03x slower
- c:m=40:' insi'...'get r': 45.6 us +- 0.6 us -> 46.9 us +- 0.4 us: 1.03x slower
- bin:m=15:b'MZ\x90\x00\x03'...b'\x00\x00\xff\xff\x00': 16.4 us +- 0.2 us -> 16.9 us +- 0.2 us: 1.03x slower
- c:m=120:'scii"'...'f (co': 22.0 us +- 0.2 us -> 22.5 us +- 0.2 us: 1.02x slower
- bin:m=30:b'MZ\x90\x00\x03'...b'\x00\x00\x00\x00\x00': 24.3 us +- 0.3 us -> 24.6 us +- 0.4 us: 1.01x slower
- en:m=320:'ntain'...' dete': 9.46 us +- 0.17 us -> 9.54 us +- 0.09 us: 1.01x slower
- bin:m=40:b'MZ\x90\x00\x03'...b'\x00\x00\x00\x00\x00': 22.6 us +- 0.2 us -> 22.8 us +- 0.2 us: 1.01x slower
- py:m=320:'g dig'...' ': 10.8 us +- 0.1 us -> 10.9 us +- 0.1 us: 1.01x slower
Faster (420):
- bin:m=160:b'BB\xffBB'...b'eee\x90\x00': 34.0 us +- 0.4 us -> 1.88 us +- 0.08 us: 18.12x faster
- bin:m=80:b'+\xba\xfbb\x94'...b'xf\xe7\xa9\xc5': 40.6 us +- 0.4 us -> 4.11 us +- 0.03 us: 9.89x faster
- bin:m=60:b'|\xafkl\x07'...b'\xe4\x03A<\xcb': 36.5 us +- 0.4 us -> 4.63 us +- 0.04 us: 7.89x faster
- bin:m=40:b'2\x00B\xff\x02'...b'+\xd8\xacu\xc6': 36.9 us +- 0.5 us -> 5.43 us +- 0.06 us: 6.80x faster
- bin:m=40:b'\x00\x00\x00\x00\x00'...b'\x01\x00\x00\x00\x00': 151 us +- 2 us -> 23.1 us +- 0.3 us: 6.55x faster
- bin:m=30:b'G\xd5\xac\x03P'...b'\xe1\xe7\xa6\xa5^': 32.6 us +- 0.4 us -> 5.48 us +- 0.13 us: 5.95x faster
- bin:m=80:b'\x00\x00\x00\x00\x00'...b'\xff\xffI\xd9\xff': 27.2 us +- 0.3 us -> 5.26 us +- 0.11 us: 5.17x faster
- bin:m=40:b'\xd3{\xb4\n\x8f'...b'\x92\xb0\x8b]y': 35.5 us +- 0.2 us -> 7.04 us +- 0.06 us: 5.05x faster
- bin:m=30:b'\x0b\x10\x0e\x022'...b'_\xf7.\x8dx': 29.1 us +- 0.3 us -> 6.13 us +- 0.06 us: 4.75x faster
- bin:m=80:b'\xf0\xf8\xff\xbe\xf0'...b'BBB\xffB': 21.6 us +- 0.2 us -> 5.47 us +- 0.07 us: 3.94x faster
- bin:m=20:b'\x01\xf4j\xa8\xc8'...b'\xa0\xcf\xeb\xa7\t': 27.5 us +- 0.3 us -> 7.48 us +- 0.07 us: 3.67x faster
- bin:m=15:b'\x16c\xec\x8c '...b'R\xc1\x18\xdb\x0b': 35.4 us +- 0.4 us -> 10.4 us +- 0.1 us: 3.39x faster
- bin:m=40:b'SN\x93\xe5\xef'...b'\x90\x96\xde#\x81': 29.7 us +- 0.3 us -> 8.98 us +- 0.10 us: 3.31x faster
- bin:m=20:b'\x13\x10\xc6\xd8\x18'...b'\xd9\x06\xfa\x02\x8d': 27.9 us +- 0.3 us -> 8.72 us +- 0.14 us: 3.20x faster
- bin:m=15:b'b\x050`\x0c'...b'eQ\x04i.': 33.0 us +- 0.5 us -> 10.4 us +- 0.1 us: 3.16x faster
- en:m=80:"g'`` "...' ': 32.0 us +- 0.4 us -> 10.5 us +- 0.1 us: 3.05x faster
- bin:m=80:b'MZ\x90\x00\x03'...b'L\xcd!Th': 25.7 us +- 0.3 us -> 9.03 us +- 0.14 us: 2.85x faster
- bin:m=60:b'~\xfc\xff\xff\xe8'...b'V\xfc\xff\xff\xe8': 28.1 us +- 0.3 us -> 9.88 us +- 0.25 us: 2.84x faster
- c:m=60:';\n '...' ': 112 us +- 2 us -> 42.2 us +- 0.4 us: 2.65x faster
- en:m=60:'ring '...', wit': 34.5 us +- 0.8 us -> 13.1 us +- 0.1 us: 2.62x faster
- bin:m=60:b'\x00\x00\x00\x00\x00'...b'\xe9Y\x03\x00\x00': 53.7 us +- 0.7 us -> 21.9 us +- 0.2 us: 2.45x faster
- bin:m=20:b'\xa8\xaa\x12\xa81'...b"'&\xdff\x8c": 17.1 us +- 0.3 us -> 7.01 us +- 0.16 us: 2.44x faster
- bin:m=20:b'\x00\xff\xccz\x00'...b'\xac`\xff\xd0\x84': 31.0 us +- 0.3 us -> 12.8 us +- 0.1 us: 2.42x faster
- bin:m=40:b'\xe1\xd4\x1a\xea\xa3'...b'\x96\xe5\xfcc\xfe': 12.4 us +- 0.2 us -> 5.16 us +- 0.05 us: 2.41x faster
- bin:m=80:b'D$\x08H\x8b'...b'\xcc\xcc\xcc\xcc\xcc': 26.6 us +- 0.3 us -> 11.1 us +- 0.2 us: 2.40x faster
- en:m=60:'-----'...'r ': 28.5 us +- 0.4 us -> 11.9 us +- 0.1 us: 2.40x faster
- bin:m=60:b'>\xab\x97\x0c\x8d'...b'\x80\xf3\x9c\xf9\x1c': 32.5 us +- 0.3 us -> 13.7 us +- 0.3 us: 2.36x faster
- en:m=80:'` for'...'`` ar': 26.2 us +- 0.7 us -> 11.3 us +- 0.1 us: 2.32x faster
- en:m=15:'he co'...'ondin': 47.0 us +- 0.4 us -> 22.1 us +- 0.3 us: 2.13x faster
- en:m=10:'re al'...'l ASC': 54.7 us +- 0.9 us -> 25.8 us +- 0.6 us: 2.12x faster
- py:m=80:'s, tr'...'\n ': 37.7 us +- 0.4 us -> 17.8 us +- 0.3 us: 2.11x faster
- bin:m=15:b'\x00\x00eee'...b'BBB\xffB': 27.8 us +- 0.4 us -> 13.5 us +- 0.2 us: 2.06x faster
- bin:m=20:b'd\xd2\xb9\xfd\xf6'...b'\xf9\xa3\x95"n': 15.0 us +- 0.2 us -> 7.26 us +- 0.06 us: 2.06x faster
- en:m=15:'t Man'...'Types': 45.9 us +- 0.9 us -> 22.6 us +- 0.3 us: 2.03x faster
- py:m=20:' a.to'...'g(con': 40.1 us +- 0.6 us -> 19.9 us +- 0.2 us: 2.01x faster
- c:m=80:' Py'...'newpo': 52.9 us +- 0.6 us -> 26.3 us +- 0.2 us: 2.01x faster
- en:m=80:'.. XX'...'-type': 26.2 us +- 0.6 us -> 13.0 us +- 0.1 us: 2.01x faster
- c:m=80:' '...' }\n ': 62.8 us +- 0.7 us -> 31.3 us +- 0.3 us: 2.01x faster
- en:m=15:' - it'...' alw': 39.7 us +- 0.5 us -> 20.0 us +- 0.2 us: 1.98x faster
- bin:m=80:b'^^\\X\x96'...b'\n\n\x01\x01\x01': 19.8 us +- 0.3 us -> 10.0 us +- 0.1 us: 1.98x faster
- c:m=40:'c PyO'...'Objec': 51.6 us +- 0.7 us -> 26.0 us +- 0.2 us: 1.98x faster
- en:m=10:'tring'...'s (fo': 59.7 us +- 1.0 us -> 30.2 us +- 0.3 us: 1.98x faster
- en:m=80:' '...'shrt ': 20.4 us +- 0.2 us -> 10.4 us +- 0.1 us: 1.96x faster
- en:m=10:'g the'...' :c:f': 52.3 us +- 0.7 us -> 26.7 us +- 0.2 us: 1.96x faster
- bin:m=15:b'\xdb\xf5O\xf3;'...b'{\xa6\x96\xdc\xba': 25.6 us +- 0.4 us -> 13.1 us +- 0.1 us: 1.95x faster
- en:m=20:'rithm'...'lied:': 37.4 us +- 0.6 us -> 19.2 us +- 0.1 us: 1.94x faster
- en:m=15:' or :'...':`flo': 40.7 us +- 0.9 us -> 21.4 us +- 0.2 us: 1.90x faster
- en:m=40:' cont'...'er. ': 35.3 us +- 0.8 us -> 18.6 us +- 0.2 us: 1.89x faster
- en:m=15:'than '...'``byt': 41.4 us +- 0.5 us -> 22.0 us +- 0.4 us: 1.88x faster
- en:m=20:'.. XX'...'ce/da': 32.0 us +- 0.4 us -> 17.0 us +- 0.3 us: 1.88x faster
- en:m=40:'--+\n\n'...'`, or': 24.8 us +- 0.5 us -> 13.2 us +- 0.1 us: 1.88x faster
- c:m=30:' more'...'e /* ': 108 us +- 1 us -> 57.6 us +- 0.6 us: 1.87x faster
- c:m=80:'ed in'...'ogate': 43.4 us +- 0.6 us -> 23.2 us +- 0.2 us: 1.87x faster
- c:m=20:'urn _'...'K();\n': 71.1 us +- 0.7 us -> 38.2 us +- 0.7 us: 1.86x faster
- c:m=30:'er = '...'de(co': 54.8 us +- 0.7 us -> 29.5 us +- 0.3 us: 1.86x faster
- c:m=60:'s4_ou'...'code_': 51.8 us +- 0.8 us -> 27.9 us +- 0.3 us: 1.85x faster
- en:m=10:' are '...'repla': 53.1 us +- 1.9 us -> 28.7 us +- 0.2 us: 1.85x faster
- en:m=10:'type\n'...' :c': 53.9 us +- 0.7 us -> 29.2 us +- 0.6 us: 1.85x faster
- en:m=20:'ct.ca'...') == ': 47.7 us +- 0.9 us -> 25.8 us +- 0.3 us: 1.84x faster
- en:m=20:'\n\n '...'are(n': 33.2 us +- 0.6 us -> 18.3 us +- 0.2 us: 1.81x faster
- py:m=30:' >>> '...'cal_a': 25.9 us +- 0.4 us -> 14.3 us +- 0.1 us: 1.81x faster
- en:m=30:'; con'..."hon's": 25.3 us +- 0.5 us -> 14.0 us +- 0.1 us: 1.80x faster
- c:m=60:'\n '...'"";\n ': 78.9 us +- 0.9 us -> 43.8 us +- 0.5 us: 1.80x faster
- bin:m=320:b'\xb8\x00\x00\x00\x00'...b'\x00\x00\x00\x00\x00': 28.9 us +- 0.3 us -> 16.1 us +- 0.1 us: 1.80x faster
- en:m=15:'value'...'st be': 47.9 us +- 0.7 us -> 26.6 us +- 0.5 us: 1.80x faster
- bin:m=320:b'\xff\xd8\xf6\xff\xff'...b'\x00\x00\x00\x00\x00': 31.0 us +- 0.4 us -> 17.2 us +- 0.2 us: 1.80x faster
- bin:m=240:b'\x1f\x00\x00\xcd\x1f'...b'@\x86\x00\x00\xc0': 30.5 us +- 0.3 us -> 17.0 us +- 0.2 us: 1.79x faster
- en:m=80:'fiers'...'s tha': 22.0 us +- 0.6 us -> 12.3 us +- 0.1 us: 1.79x faster
- c:m=80:';\n '...'t(&wr': 35.8 us +- 0.5 us -> 20.1 us +- 0.2 us: 1.79x faster
- en:m=30:'-> in'...' retu': 28.1 us +- 0.4 us -> 15.7 us +- 0.1 us: 1.79x faster
- en:m=20:'een 8'...'gs (t': 38.4 us +- 0.5 us -> 21.5 us +- 0.2 us: 1.78x faster
- c:m=20:'PyUni'...'_Writ': 61.1 us +- 0.7 us -> 34.3 us +- 0.3 us: 1.78x faster
- en:m=15:'.. XX'...'feren': 35.3 us +- 0.3 us -> 19.8 us +- 0.3 us: 1.78x faster
- py:m=20:'Decim'...'oat(0': 30.1 us +- 0.3 us -> 16.9 us +- 0.2 us: 1.78x faster
- en:m=10:'of le'...'ngth ': 65.6 us +- 1.1 us -> 36.8 us +- 0.3 us: 1.78x faster
- en:m=15:"'']``"...' For ': 44.5 us +- 0.7 us -> 25.1 us +- 0.2 us: 1.77x faster
- en:m=60:'her m'...' *mus': 27.4 us +- 0.7 us -> 15.5 us +- 0.2 us: 1.77x faster
- bin:m=160:b'\x00\x00\x00\x01\x08'...b'\x00\x00\x00\x00\x00': 31.4 us +- 0.3 us -> 17.8 us +- 0.2 us: 1.76x faster
- c:m=80:'/*\n\nU'...'d by ': 62.5 us +- 0.7 us -> 35.6 us +- 0.4 us: 1.75x faster
- py:m=10:'# Cop'...'yrigh': 51.9 us +- 0.5 us -> 29.6 us +- 0.3 us: 1.75x faster
- c:m=15:'stati'...'ssize': 92.0 us +- 1.5 us -> 52.5 us +- 0.7 us: 1.75x faster
- bin:m=120:b'\x00\x00\x00\x00\x00'...b'\x00\x00\x00\x00\x00': 34.7 us +- 0.3 us -> 19.8 us +- 0.2 us: 1.75x faster
- bin:m=160:b'b\xe2\xff\xff_'...b'\x00\x00\x00\x00\x00': 32.6 us +- 0.3 us -> 18.7 us +- 0.2 us: 1.75x faster
- c:m=40:'IND(r'...' ': 92.9 us +- 1.1 us -> 53.2 us +- 0.4 us: 1.74x faster
- c:m=20:'/*\n\nU'...'lemen': 74.6 us +- 0.8 us -> 42.8 us +- 0.3 us: 1.74x faster
- en:m=20:'ary).'...'::\n ': 46.4 us +- 0.7 us -> 26.7 us +- 0.2 us: 1.74x faster
- c:m=60:'/*\n\nU'...'edrik': 41.8 us +- 5.3 us -> 24.1 us +- 0.3 us: 1.74x faster
- bin:m=240:b'\x00\n\x06\x03\x03'...b'\x00\x00\x00\x00\x00': 32.5 us +- 0.3 us -> 18.8 us +- 0.2 us: 1.73x faster
- en:m=15:' 3200'...' ': 50.9 us +- 0.5 us -> 29.5 us +- 0.2 us: 1.73x faster
- c:m=60:'llcha'...'f len': 57.8 us +- 0.5 us -> 33.6 us +- 0.4 us: 1.72x faster
- bin:m=80:b'\xff\x00\xfe\xfe\xfe'...b'\x00\x00\x00\x00\x00': 18.5 us +- 0.2 us -> 10.8 us +- 0.2 us: 1.71x faster
- en:m=80:'ise r'...'or. ': 17.6 us +- 0.2 us -> 10.3 us +- 0.1 us: 1.71x faster
- en:m=40:' 012 '...' ': 26.3 us +- 0.3 us -> 15.4 us +- 0.2 us: 1.71x faster
- en:m=40:'* Cre'...'ith a': 32.5 us +- 0.7 us -> 19.0 us +- 0.3 us: 1.71x faster
- c:m=15:'\nunic'...'ubscr': 72.4 us +- 0.9 us -> 42.5 us +- 0.9 us: 1.70x faster
- c:m=10:' /* s'...'q_ass': 109 us +- 1 us -> 63.8 us +- 0.5 us: 1.70x faster
- en:m=10:', the'...' memo': 58.1 us +- 0.8 us -> 34.2 us +- 0.4 us: 1.70x faster
- en:m=20:'ex::\n'...' cont': 36.1 us +- 0.4 us -> 21.2 us +- 0.2 us: 1.70x faster
- py:m=10:'> Ext'...'ended': 52.8 us +- 0.6 us -> 31.1 us +- 0.2 us: 1.70x faster
- bin:m=240:b'A\x89H\x08A'...b'\xb8\x04\x00\x00\x00': 33.5 us +- 0.4 us -> 19.7 us +- 0.2 us: 1.70x faster
- en:m=10:' a ke'...'y occ': 47.7 us +- 0.6 us -> 28.2 us +- 0.4 us: 1.69x faster
- en:m=10:"am']\n"...' 50': 48.7 us +- 0.7 us -> 28.8 us +- 1.5 us: 1.69x faster
- py:m=60:' '...' ': 40.1 us +- 0.5 us -> 23.8 us +- 0.2 us: 1.68x faster
- bin:m=240:b'MZ\x90\x00\x03'...b'\x00\x00\x00\x00\x00': 33.7 us +- 0.3 us -> 20.0 us +- 0.2 us: 1.68x faster
- en:m=20:'bytea'..."efg')": 24.0 us +- 0.3 us -> 14.3 us +- 0.1 us: 1.68x faster
- c:m=20:'Forma'...'peErr': 56.1 us +- 0.6 us -> 33.5 us +- 0.4 us: 1.68x faster
- py:m=30:' >>>'...'ical_': 24.1 us +- 0.3 us -> 14.4 us +- 0.1 us: 1.67x faster
- c:m=80:'F8_FS'...'t, Py': 50.6 us +- 1.3 us -> 30.3 us +- 0.3 us: 1.67x faster
- c:m=30:' co'...'2;\n ': 114 us +- 1 us -> 68.6 us +- 0.7 us: 1.67x faster
- c:m=80:'d gen'...'y_ssi': 38.6 us +- 0.6 us -> 23.2 us +- 0.2 us: 1.67x faster
- bin:m=320:b'MZ\x90\x00\x03'...b'\x00\x00\x02\x00\x00': 32.4 us +- 0.3 us -> 19.5 us +- 0.4 us: 1.66x faster
- c:m=10:'tic i'...'nt\nco': 116 us +- 2 us -> 70.0 us +- 0.7 us: 1.66x faster
- en:m=20:'x in '...'ce wh': 33.1 us +- 0.6 us -> 20.1 us +- 0.2 us: 1.65x faster
- c:m=20:') {\n '...' memc': 68.1 us +- 0.9 us -> 41.4 us +- 0.4 us: 1.64x faster
- en:m=60:'.. XX'...'verla': 21.1 us +- 0.3 us -> 12.8 us +- 0.1 us: 1.64x faster
- en:m=30:'der:\n'...'acter': 24.5 us +- 0.3 us -> 14.9 us +- 0.1 us: 1.64x faster
- c:m=80:' PyUn'...'art +': 39.7 us +- 0.6 us -> 24.2 us +- 0.3 us: 1.64x faster
- c:m=15:' PyOb'...'*char': 93.8 us +- 1.3 us -> 57.3 us +- 0.4 us: 1.64x faster
- c:m=60:' *\nPy'...'rgs)\n': 41.3 us +- 0.7 us -> 25.3 us +- 0.2 us: 1.64x faster
- py:m=40:'float'...'m_tri': 23.2 us +- 0.4 us -> 14.2 us +- 0.1 us: 1.64x faster
- c:m=10:' P'...'yComp': 98.9 us +- 1.4 us -> 60.6 us +- 0.5 us: 1.63x faster
- bin:m=160:b'\x89\x05\x1ca\x00'...b'\xcc\xcc\xcc\xcc\xcc': 16.3 us +- 0.2 us -> 10.0 us +- 0.1 us: 1.63x faster
- en:m=40:'ollow'...'ionar': 25.4 us +- 0.6 us -> 15.6 us +- 0.2 us: 1.63x faster
- py:m=40:'\n '...'l_and': 20.2 us +- 0.3 us -> 12.4 us +- 0.2 us: 1.63x faster
- en:m=60:'-----'..."'x'``": 12.3 us +- 0.3 us -> 7.54 us +- 0.05 us: 1.63x faster
- en:m=60:'matio'...' bool': 17.4 us +- 0.4 us -> 10.7 us +- 0.1 us: 1.63x faster
- c:m=120:'\\\n '...'len; ': 33.1 us +- 0.2 us -> 20.4 us +- 0.2 us: 1.63x faster
- py:m=10:'min, '...'vmax,': 52.2 us +- 0.7 us -> 32.1 us +- 0.3 us: 1.63x faster
- py:m=80:'>>> E'...' ': 26.0 us +- 0.3 us -> 16.0 us +- 0.1 us: 1.62x faster
- bin:m=120:b'\x83|$D\x00'...b'\xcc\xcc\xcc\xcc\xcc': 15.3 us +- 0.1 us -> 9.45 us +- 0.11 us: 1.62x faster
- en:m=20:'byte '...'If th': 30.6 us +- 0.4 us -> 19.0 us +- 0.3 us: 1.62x faster
- en:m=30:': lva'...'diffe': 24.9 us +- 0.3 us -> 15.5 us +- 0.2 us: 1.61x faster
- bin:m=320:b'%l{\x00\x00'...b'\xcc\xcc\xcc\xcc\xcc': 15.4 us +- 0.2 us -> 9.64 us +- 0.09 us: 1.60x faster
- en:m=30:'e cur'...'\n t': 31.4 us +- 0.5 us -> 19.6 us +- 0.2 us: 1.60x faster
- en:m=60:' >>>'...'ytes.': 21.5 us +- 0.4 us -> 13.5 us +- 0.1 us: 1.60x faster
- en:m=15:'bcefg'...' >': 36.5 us +- 0.5 us -> 22.8 us +- 0.2 us: 1.60x faster
- en:m=30:'objec'...'re un': 30.9 us +- 0.6 us -> 19.4 us +- 0.2 us: 1.60x faster
- py:m=10:"d's d"...'igits': 51.4 us +- 0.7 us -> 32.3 us +- 0.3 us: 1.59x faster
- py:m=30:'n_wid'...'roups': 24.3 us +- 0.5 us -> 15.3 us +- 0.1 us: 1.59x faster
- py:m=40:"')\n "...'cal_x': 20.3 us +- 0.2 us -> 12.8 us +- 0.2 us: 1.59x faster
- c:m=60:'TH(se'...'start': 29.9 us +- 0.4 us -> 18.8 us +- 0.2 us: 1.59x faster
- py:m=60:' Ass'...'that ': 26.1 us +- 0.4 us -> 16.5 us +- 0.2 us: 1.58x faster
- en:m=80:' '...'lass:': 14.5 us +- 0.4 us -> 9.15 us +- 0.09 us: 1.58x faster
- c:m=15:' *)op'...' cons': 88.9 us +- 1.1 us -> 56.3 us +- 0.4 us: 1.58x faster
- bin:m=80:b'\x00\x00\xff\xff\xff'...b'\x00\x00\x00\x00\x00': 32.7 us +- 0.3 us -> 20.7 us +- 0.2 us: 1.58x faster
- c:m=20:' '...'NULL;': 68.4 us +- 0.9 us -> 43.5 us +- 0.4 us: 1.57x faster
- en:m=10:'.. XX'...'X: re': 50.0 us +- 0.6 us -> 32.0 us +- 0.7 us: 1.56x faster
- c:m=240:';\n\n '...'lags ': 21.5 us +- 0.3 us -> 13.8 us +- 0.2 us: 1.56x faster
- py:m=60:'# Cop'...'right': 23.1 us +- 0.3 us -> 14.8 us +- 0.1 us: 1.56x faster
- c:m=40:' PyEr'...' ': 87.9 us +- 1.0 us -> 56.7 us +- 0.6 us: 1.55x faster
- c:m=30:' '...'rs,\n ': 83.5 us +- 1.2 us -> 53.9 us +- 0.5 us: 1.55x faster
- en:m=40:'** 2\n'...' othe': 22.9 us +- 0.3 us -> 14.8 us +- 0.2 us: 1.55x faster
- en:m=60:'ualit'...' of u': 20.4 us +- 0.5 us -> 13.2 us +- 0.1 us: 1.55x faster
- py:m=15:' ret'...'elf._': 41.6 us +- 0.5 us -> 26.9 us +- 1.7 us: 1.55x faster
- py:m=15:'ult a'...' goes': 42.1 us +- 0.5 us -> 27.3 us +- 0.3 us: 1.55x faster
- py:m=80:'# Cop'...'Writt': 21.2 us +- 0.3 us -> 13.7 us +- 0.2 us: 1.54x faster
- py:m=30:'e ret'...' if ': 42.8 us +- 0.5 us -> 27.7 us +- 0.4 us: 1.54x faster
- py:m=20:'et\n '...'ignal': 34.6 us +- 0.5 us -> 22.5 us +- 0.3 us: 1.54x faster
- en:m=30:'+\n| `'...' blan': 24.2 us +- 0.5 us -> 15.7 us +- 0.2 us: 1.54x faster
- c:m=30:'copy '...'raili': 59.9 us +- 0.8 us -> 39.0 us +- 0.4 us: 1.54x faster
- c:m=20:'\n '...' Py_s': 62.2 us +- 0.5 us -> 40.4 us +- 0.4 us: 1.54x faster
- en:m=20:'nts a'...'the k': 35.9 us +- 0.6 us -> 23.4 us +- 0.2 us: 1.54x faster
- py:m=60:' '...'l_xor': 16.8 us +- 0.2 us -> 11.0 us +- 0.1 us: 1.53x faster
- en:m=60:'y wit'...'ersio': 18.2 us +- 0.3 us -> 11.9 us +- 0.1 us: 1.53x faster
- bin:m=80:b'%\x7f?\xc5\x18'...b'\x00\x00\x00IE': 32.9 us +- 0.3 us -> 21.6 us +- 0.2 us: 1.53x faster
- en:m=40:'.. XX'...'s hav': 24.8 us +- 0.5 us -> 16.3 us +- 0.2 us: 1.53x faster
- bin:m=30:b'.\xfe\x14\x8d\x17'...b'\x08\x14>\xcc\xc0': 30.5 us +- 0.3 us -> 20.0 us +- 0.2 us: 1.53x faster
- py:m=40:"ed, '"...'_divi': 23.9 us +- 0.3 us -> 15.7 us +- 0.1 us: 1.52x faster
- en:m=15:'ytes '...'ult i': 43.6 us +- 0.6 us -> 28.7 us +- 0.2 us: 1.52x faster
- bin:m=40:b'\xc2+\xba\xfbb'...b'\x00\xac\x00\x984': 34.7 us +- 0.5 us -> 22.8 us +- 0.3 us: 1.52x faster
- en:m=80:'ted t'...' the': 16.4 us +- 0.2 us -> 10.8 us +- 0.1 us: 1.52x faster
- py:m=120:' _con'...'"max ': 14.3 us +- 0.2 us -> 9.44 us +- 0.09 us: 1.52x faster
- c:m=30:' NULL'...'\n ': 93.8 us +- 1.5 us -> 61.8 us +- 0.7 us: 1.52x faster
- py:m=15:' '...'xtend': 39.0 us +- 0.4 us -> 25.8 us +- 0.2 us: 1.51x faster
- bin:m=120:b'\x08\x0f\xb7@\x06'...b'\xcc\xcc\xcc\xcc\xcc': 17.8 us +- 0.3 us -> 11.8 us +- 0.1 us: 1.51x faster
- bin:m=30:b'+@\xc5\x0c\xfb'...b'\x0c\x80\xd0\xe0C': 31.0 us +- 0.5 us -> 20.5 us +- 0.2 us: 1.51x faster
- py:m=60:'derfl'...'nd bo': 27.1 us +- 0.3 us -> 18.0 us +- 0.2 us: 1.51x faster
- en:m=40:'defin'...'obyte': 20.7 us +- 0.2 us -> 13.8 us +- 0.2 us: 1.51x faster
- py:m=60:' retu'...'lse:\n': 18.5 us +- 0.3 us -> 12.3 us +- 0.1 us: 1.50x faster
- en:m=40:'d of '...' attr': 20.0 us +- 0.4 us -> 13.4 us +- 0.1 us: 1.50x faster
- c:m=80:' ass'...' PyUn': 38.3 us +- 0.6 us -> 25.7 us +- 0.3 us: 1.49x faster
- c:m=60:'y = P'...' re': 45.0 us +- 0.6 us -> 30.2 us +- 0.2 us: 1.49x faster
- py:m=320:'# Cop'...'with ': 12.4 us +- 0.2 us -> 8.35 us +- 0.10 us: 1.49x faster
- py:m=30:'= _co'...'it=Tr': 27.2 us +- 0.4 us -> 18.3 us +- 0.3 us: 1.49x faster
- py:m=15:' '...'gnal ': 51.4 us +- 0.6 us -> 34.6 us +- 0.3 us: 1.48x faster
- c:m=40:' c'...'4 *uc': 50.8 us +- 0.7 us -> 34.3 us +- 0.3 us: 1.48x faster
- c:m=60:'th of'...'usedD': 35.6 us +- 0.7 us -> 24.0 us +- 0.2 us: 1.48x faster
- py:m=20:' if a'...' ': 54.7 us +- 0.7 us -> 37.4 us +- 0.4 us: 1.46x faster
- py:m=80:"0E+6'"...' ': 25.4 us +- 0.3 us -> 17.4 us +- 0.2 us: 1.46x faster
- en:m=30:'le: u'...'tr.sp': 24.1 us +- 0.3 us -> 16.5 us +- 0.2 us: 1.46x faster
- c:m=20:' '...' Py_s': 59.1 us +- 0.9 us -> 40.5 us +- 0.4 us: 1.46x faster
- c:m=160:');\n '...'e);\n ': 33.8 us +- 0.3 us -> 23.2 us +- 0.2 us: 1.46x faster
- py:m=40:'sep.j'...'rmat_': 24.5 us +- 0.5 us -> 16.9 us +- 0.2 us: 1.46x faster
- en:m=60:' body'...'\n.. m': 17.2 us +- 0.4 us -> 11.9 us +- 0.2 us: 1.45x faster
- en:m=60:'prefi'...' Wit': 17.1 us +- 0.2 us -> 11.8 us +- 0.1 us: 1.45x faster
- py:m=30:' '...' ': 49.3 us +- 0.6 us -> 34.2 us +- 0.4 us: 1.44x faster
- c:m=15:' to g'...'e Pyt': 85.5 us +- 1.3 us -> 59.4 us +- 0.6 us: 1.44x faster
- py:m=20:'that '...' 9.\n\n': 34.3 us +- 0.4 us -> 23.9 us +- 0.2 us: 1.44x faster
- en:m=80:'Since'...'ytear': 16.6 us +- 0.2 us -> 11.6 us +- 0.2 us: 1.42x faster
- c:m=30:'bj)->'...'turn ': 73.7 us +- 0.8 us -> 51.9 us +- 0.5 us: 1.42x faster
- py:m=20:'ended'...'gical': 25.9 us +- 0.4 us -> 18.2 us +- 0.2 us: 1.42x faster
- en:m=80:'0x7F.'...'ytear': 13.8 us +- 0.3 us -> 9.75 us +- 0.14 us: 1.41x faster
- c:m=80:' Py'...'enum ': 41.5 us +- 0.5 us -> 29.3 us +- 0.3 us: 1.41x faster
- py:m=40:'t doi'...' ': 33.3 us +- 0.5 us -> 23.5 us +- 0.3 us: 1.41x faster
- bin:m=120:b'BB\xffBB'...b'BBB\xffB': 5.16 us +- 0.16 us -> 3.65 us +- 0.05 us: 1.41x faster
- c:m=40:';\n '...' f;\n ': 65.9 us +- 0.8 us -> 46.6 us +- 0.7 us: 1.41x faster
- c:m=40:'_ssiz'...'r *st': 53.9 us +- 0.6 us -> 38.2 us +- 0.4 us: 1.41x faster
- en:m=120:"'[A-Z"...' ': 9.74 us +- 0.27 us -> 6.90 us +- 0.08 us: 1.41x faster
- c:m=10:' PyOb'...'ject ': 133 us +- 1 us -> 94.4 us +- 1.0 us: 1.41x faster
- py:m=15:'e bot'...'ical ': 50.5 us +- 0.9 us -> 35.9 us +- 0.4 us: 1.41x faster
- en:m=10:'plus)'...'; in ': 60.7 us +- 0.9 us -> 43.3 us +- 0.4 us: 1.40x faster
- py:m=240:'\n '...' for ': 14.3 us +- 0.3 us -> 10.2 us +- 0.1 us: 1.40x faster
- en:m=80:':\n\n '...'e rem': 15.1 us +- 0.4 us -> 10.8 us +- 0.1 us: 1.40x faster
- c:m=120:' '...'de_2B': 25.5 us +- 0.4 us -> 18.3 us +- 0.2 us: 1.40x faster
- c:m=40:'/*\n\nU'...' orig': 47.1 us +- 0.9 us -> 33.7 us +- 0.3 us: 1.40x faster
- c:m=15:'/*\n\nU'...'e imp': 88.2 us +- 0.9 us -> 63.1 us +- 0.5 us: 1.40x faster
- c:m=30:' ");\n'...', (vo': 58.9 us +- 0.7 us -> 42.3 us +- 0.5 us: 1.39x faster
- py:m=40:'\n '...' ': 32.9 us +- 0.5 us -> 23.7 us +- 0.3 us: 1.39x faster
- c:m=15:'ject '...'ode, ': 107 us +- 1 us -> 76.9 us +- 0.8 us: 1.39x faster
- py:m=320:'ext.r'...'urns ': 13.2 us +- 0.1 us -> 9.57 us +- 0.14 us: 1.38x faster
- py:m=20:'signa'...'other': 33.5 us +- 0.4 us -> 24.2 us +- 0.3 us: 1.38x faster
- py:m=60:'ec to'...'housa': 20.2 us +- 0.4 us -> 14.7 us +- 0.2 us: 1.38x faster
- py:m=15:' cont'...'s Non': 43.9 us +- 0.5 us -> 31.9 us +- 0.3 us: 1.38x faster
- en:m=30:'.. XX'...'el an': 25.7 us +- 0.5 us -> 18.7 us +- 0.2 us: 1.37x faster
- en:m=240:'---+\n'...'-----': 6.06 us +- 0.08 us -> 4.41 us +- 0.05 us: 1.37x faster
- py:m=20:'# Cop'...' 2004': 31.6 us +- 0.4 us -> 23.1 us +- 0.3 us: 1.37x faster
- c:m=30:'yObje'...'onst ': 78.5 us +- 0.9 us -> 57.6 us +- 0.7 us: 1.36x faster
- py:m=40:' '...'de te': 22.6 us +- 0.3 us -> 16.6 us +- 0.2 us: 1.36x faster
- py:m=15:' '...' rai': 36.3 us +- 0.4 us -> 26.8 us +- 0.3 us: 1.36x faster
- en:m=160:'retur'...'bove ': 7.88 us +- 0.12 us -> 5.81 us +- 0.09 us: 1.36x faster
- en:m=30:'te:: '...' of i': 23.9 us +- 0.3 us -> 17.6 us +- 0.5 us: 1.36x faster
- c:m=15:'State'...'onst ': 93.6 us +- 1.9 us -> 69.2 us +- 0.6 us: 1.35x faster
- py:m=40:'juste'...'_zero': 22.0 us +- 0.3 us -> 16.3 us +- 0.1 us: 1.35x faster
- en:m=30:'n the'...'he su': 23.5 us +- 0.3 us -> 17.4 us +- 0.2 us: 1.35x faster
- bin:m=120:b'\xffj\xe5\xff\xff'...b'B\xffBBB': 7.46 us +- 0.09 us -> 5.54 us +- 0.07 us: 1.35x faster
- c:m=20:'= (as'...' ': 112 us +- 1 us -> 83.1 us +- 1.2 us: 1.35x faster
- c:m=160:'BYTE_'...'nd);\n': 22.6 us +- 0.3 us -> 16.9 us +- 0.2 us: 1.33x faster
- en:m=240:'\n\n '...'>\n ': 10.0 us +- 0.1 us -> 7.53 us +- 0.05 us: 1.33x faster
- en:m=60:"', 1)"..."one':": 16.1 us +- 0.3 us -> 12.1 us +- 0.1 us: 1.33x faster
- en:m=160:' can '...'obj, ': 10.5 us +- 0.1 us -> 7.89 us +- 0.08 us: 1.33x faster
- en:m=40:'o acc'...'to 25': 19.9 us +- 0.5 us -> 15.0 us +- 0.1 us: 1.32x faster
- py:m=15:' left'...' av': 39.8 us +- 0.5 us -> 30.1 us +- 0.3 us: 1.32x faster
- c:m=60:' }\n'...'rp->u': 33.9 us +- 0.6 us -> 25.7 us +- 0.3 us: 1.32x faster
- en:m=30:'g add'...'t, th': 24.7 us +- 0.4 us -> 18.8 us +- 0.2 us: 1.32x faster
- c:m=120:'code_'...' Ensu': 23.0 us +- 0.4 us -> 17.4 us +- 0.2 us: 1.32x faster
- py:m=30:'lf._s'...'e, va': 29.1 us +- 0.3 us -> 22.1 us +- 0.2 us: 1.32x faster
- en:m=120:'tes.l'...'bytes': 13.1 us +- 0.2 us -> 9.99 us +- 0.10 us: 1.31x faster
- c:m=120:'/*\n\nU'...'>.\n\nM': 19.8 us +- 0.3 us -> 15.1 us +- 0.1 us: 1.31x faster
- py:m=80:'cimal'...'ontex': 13.0 us +- 0.1 us -> 9.98 us +- 0.11 us: 1.31x faster
- py:m=160:' oper'...'nfini': 11.7 us +- 0.2 us -> 8.96 us +- 0.11 us: 1.31x faster
- py:m=30:'d of '...' an': 25.9 us +- 0.4 us -> 19.8 us +- 0.3 us: 1.30x faster
- c:m=30:'/*\n\nU'...'n bas': 54.1 us +- 0.7 us -> 41.9 us +- 0.5 us: 1.29x faster
- c:m=240:' '...' seco': 17.0 us +- 0.2 us -> 13.1 us +- 0.1 us: 1.29x faster
- en:m=160:'with '...'tly, ': 10.5 us +- 0.2 us -> 8.16 us +- 0.10 us: 1.29x faster
- py:m=60:'ical_'...'ratio': 16.5 us +- 0.2 us -> 12.9 us +- 0.1 us: 1.29x faster
- en:m=240:'erwis'...'\n\n ': 9.52 us +- 0.12 us -> 7.41 us +- 0.08 us: 1.29x faster
- c:m=60:'n < 1'...'epeat': 32.3 us +- 0.5 us -> 25.2 us +- 0.2 us: 1.28x faster
- c:m=80:'(resu'...' + re': 27.9 us +- 0.5 us -> 21.8 us +- 0.2 us: 1.28x faster
- en:m=80:'print'...' sing': 16.5 us +- 0.5 us -> 12.9 us +- 0.1 us: 1.27x faster
- py:m=15:'ecima'..."+1'))": 25.6 us +- 0.3 us -> 20.1 us +- 0.4 us: 1.27x faster
- en:m=160:'.. ve'...'urn a': 11.9 us +- 0.2 us -> 9.37 us +- 0.24 us: 1.27x faster
- py:m=20:'%s is'...'id si': 35.4 us +- 0.5 us -> 27.8 us +- 0.2 us: 1.27x faster
- bin:m=60:b'\x00\x00\x00\x10\x00'...b']]\x00cc': 26.2 us +- 0.3 us -> 20.6 us +- 0.2 us: 1.27x faster
- en:m=120:'er is'...'= typ': 11.4 us +- 0.1 us -> 9.01 us +- 0.12 us: 1.27x faster
- en:m=120:'ng__`'...'nt. ': 12.9 us +- 0.1 us -> 10.2 us +- 0.1 us: 1.27x faster
- c:m=10:'c sta'...'rt ge': 119 us +- 1 us -> 94.0 us +- 0.9 us: 1.26x faster
- py:m=240:'ot co'...'== n ': 14.3 us +- 0.2 us -> 11.3 us +- 0.1 us: 1.26x faster
- py:m=10:'class'...'metho': 37.5 us +- 0.6 us -> 29.7 us +- 0.2 us: 1.26x faster
- en:m=160:'tf\n '...'matti': 11.8 us +- 0.1 us -> 9.34 us +- 0.13 us: 1.26x faster
- py:m=60:'ne:\n '...'# exp': 14.6 us +- 0.2 us -> 11.6 us +- 0.1 us: 1.26x faster
- py:m=15:'g poi'...'he\n ': 66.6 us +- 1.3 us -> 53.0 us +- 0.4 us: 1.26x faster
- c:m=10:'short'...'*) Py': 117 us +- 1 us -> 93.4 us +- 0.9 us: 1.26x faster
- c:m=40:'\n '...';\n ': 86.4 us +- 1.1 us -> 68.9 us +- 0.9 us: 1.25x faster
- py:m=15:'# Cop'...'t (c)': 40.0 us +- 0.6 us -> 31.9 us +- 0.3 us: 1.25x faster
- py:m=30:'aN.\n\n'...'if co': 22.5 us +- 0.3 us -> 18.0 us +- 0.3 us: 1.25x faster
- py:m=20:'ugh t'...' ': 49.4 us +- 0.6 us -> 39.5 us +- 0.4 us: 1.25x faster
- c:m=120:' P'...'har;\n': 21.8 us +- 0.3 us -> 17.5 us +- 0.3 us: 1.25x faster
- bin:m=240:b'\xffBBB\xff'...b'B\xffBBB': 2.83 us +- 0.07 us -> 2.27 us +- 0.03 us: 1.25x faster
- bin:m=15:b'\xcfFXb='...b'M%\x1b\x11+': 13.5 us +- 0.2 us -> 10.8 us +- 0.1 us: 1.25x faster
- py:m=60:' '...'else:': 13.0 us +- 0.2 us -> 10.5 us +- 0.1 us: 1.24x faster
- py:m=30:'# Cop'...'on So': 24.6 us +- 0.3 us -> 19.9 us +- 0.2 us: 1.24x faster
- c:m=15:'en(p)'...' ': 133 us +- 2 us -> 108 us +- 1 us: 1.23x faster
- py:m=10:'(self'...'):\n ': 83.5 us +- 1.8 us -> 67.9 us +- 0.7 us: 1.23x faster
- c:m=10:'_t *e'...'nd,\n ': 134 us +- 1 us -> 109 us +- 2 us: 1.23x faster
- c:m=10:'yObje'...'ct *\n': 110 us +- 1 us -> 89.9 us +- 0.7 us: 1.23x faster
- c:m=160:'(str2'...'_1BYT': 18.8 us +- 0.2 us -> 15.4 us +- 0.2 us: 1.22x faster
- en:m=320:'eturn'...'ror`.': 9.27 us +- 0.10 us -> 7.63 us +- 0.08 us: 1.21x faster
- py:m=10:'ariso'...'ns\n ': 81.9 us +- 0.6 us -> 67.5 us +- 0.6 us: 1.21x faster
- py:m=10:'rgume'...'nt gi': 56.2 us +- 0.7 us -> 46.4 us +- 0.5 us: 1.21x faster
- en:m=320:'yle f'...'``byt': 9.29 us +- 0.12 us -> 7.68 us +- 0.07 us: 1.21x faster
- bin:m=160:b'\xff\xff\xff\xff,'...b'?\xff\xabz>': 8.82 us +- 0.08 us -> 7.30 us +- 0.06 us: 1.21x faster
- py:m=120:'- Dec'...'snan(': 9.11 us +- 0.12 us -> 7.57 us +- 0.07 us: 1.20x faster
- en:m=120:'jects'...'ount(': 10.7 us +- 0.2 us -> 8.95 us +- 0.12 us: 1.20x faster
- bin:m=240:b'\x00\x00\x00\x00\x00'...b'\x00\x00\x00\x00\x00': 9.88 us +- 0.09 us -> 8.25 us +- 0.10 us: 1.20x faster
- py:m=80:') - 1'...'n len': 12.9 us +- 0.2 us -> 10.8 us +- 0.2 us: 1.20x faster
- py:m=240:' '...' ': 11.3 us +- 0.2 us -> 9.47 us +- 0.19 us: 1.19x faster
- en:m=160:'ot* o'...'thod\n': 12.8 us +- 0.2 us -> 10.7 us +- 0.2 us: 1.19x faster
- py:m=80:'dOper'...'ng Na': 12.8 us +- 0.4 us -> 10.8 us +- 0.1 us: 1.19x faster
- c:m=320:'maxch'...'rt(ch': 17.8 us +- 0.2 us -> 15.0 us +- 0.1 us: 1.19x faster
- py:m=160:'dedCo'...' ': 11.0 us +- 0.2 us -> 9.28 us +- 0.15 us: 1.18x faster
- c:m=320:'put=d'...'TH(su': 14.1 us +- 0.2 us -> 11.9 us +- 0.1 us: 1.18x faster
- en:m=240:'II wh'...'nsist': 8.74 us +- 0.17 us -> 7.39 us +- 0.09 us: 1.18x faster
- py:m=20:'logic'...'f, a,': 34.4 us +- 0.3 us -> 29.1 us +- 0.2 us: 1.18x faster
- en:m=160:' '...'ntica': 8.90 us +- 0.08 us -> 7.54 us +- 0.11 us: 1.18x faster
- bin:m=320:b'\xbd84\x04\xdf'...b'\x90\x08&F?': 3.91 us +- 0.06 us -> 3.31 us +- 0.03 us: 1.18x faster
- en:m=240:' '...'en a ': 9.75 us +- 0.17 us -> 8.26 us +- 0.11 us: 1.18x faster
- en:m=160:' this'...'it=-1': 13.5 us +- 0.2 us -> 11.5 us +- 0.1 us: 1.18x faster
- en:m=120:'ntext'...'is th': 13.7 us +- 0.2 us -> 11.6 us +- 0.1 us: 1.17x faster
- en:m=160:'body\n'...'exc_v': 10.5 us +- 0.2 us -> 8.97 us +- 0.09 us: 1.17x faster
- c:m=120:' = Py'...'yUnic': 21.5 us +- 0.4 us -> 18.4 us +- 0.3 us: 1.17x faster
- py:m=80:'._int'...'._exp': 10.7 us +- 0.2 us -> 9.16 us +- 0.11 us: 1.17x faster
- bin:m=40:b'\x00\x0b\x02\x0e\x1b'...b'\x00\x00\x00\x02\x00': 15.7 us +- 0.2 us -> 13.5 us +- 0.1 us: 1.17x faster
- c:m=240:'start'...'er);\n': 16.9 us +- 0.3 us -> 14.5 us +- 0.2 us: 1.17x faster
- py:m=160:'w sig'...'e\n ': 16.2 us +- 0.2 us -> 13.9 us +- 0.1 us: 1.17x faster
- c:m=120:'error'...'UTF16': 21.7 us +- 0.3 us -> 18.6 us +- 0.2 us: 1.16x faster
- en:m=40:'====='...' ``\\n': 12.0 us +- 0.3 us -> 10.3 us +- 0.1 us: 1.16x faster
- en:m=240:'that '...'tinct': 10.0 us +- 0.1 us -> 8.62 us +- 0.10 us: 1.16x faster
- en:m=160:'.. XX'...'scrib': 11.7 us +- 0.1 us -> 10.1 us +- 0.1 us: 1.16x faster
- c:m=160:'/*\n\nU'...'mplem': 19.8 us +- 0.2 us -> 17.1 us +- 0.2 us: 1.16x faster
- en:m=120:'s do '...'class': 13.2 us +- 0.2 us -> 11.4 us +- 0.1 us: 1.15x faster
- c:m=240:'os < '...'{\n ': 19.2 us +- 0.3 us -> 16.6 us +- 0.3 us: 1.15x faster
- py:m=80:'ignal'...'ling)': 13.5 us +- 0.2 us -> 11.7 us +- 0.1 us: 1.15x faster
- c:m=160:'= beg'...' (Py_': 17.1 us +- 0.3 us -> 14.9 us +- 0.2 us: 1.15x faster
- bin:m=320:b'B\xffBBB'...b'BB\xffBB': 3.32 us +- 0.07 us -> 2.88 us +- 0.04 us: 1.15x faster
- en:m=320:'cess '...':`byt': 9.78 us +- 0.12 us -> 8.51 us +- 0.10 us: 1.15x faster
- c:m=30:'ags(c'...' Py': 56.4 us +- 0.6 us -> 49.1 us +- 0.4 us: 1.15x faster
- en:m=240:' '...'union': 8.06 us +- 0.12 us -> 7.02 us +- 0.07 us: 1.15x faster
- en:m=320:'ey ca'...'r exa': 9.25 us +- 0.13 us -> 8.06 us +- 0.08 us: 1.15x faster
- en:m=240:'-----'...'-----': 6.24 us +- 0.07 us -> 5.44 us +- 0.08 us: 1.15x faster
- py:m=15:'turn '...'\n\n ': 64.6 us +- 0.8 us -> 56.3 us +- 0.5 us: 1.15x faster
- py:m=40:'# Cop'...'e Fou': 19.7 us +- 0.3 us -> 17.2 us +- 0.4 us: 1.15x faster
- py:m=80:'ounde'...'tripl': 11.4 us +- 0.2 us -> 9.93 us +- 0.12 us: 1.14x faster
- c:m=120:'icode'...'sert(': 22.1 us +- 0.3 us -> 19.4 us +- 0.2 us: 1.14x faster
- py:m=160:' or s'...'ult_s': 11.7 us +- 0.2 us -> 10.3 us +- 0.1 us: 1.14x faster
- py:m=120:' ""'...'on-Na': 11.8 us +- 0.2 us -> 10.4 us +- 0.1 us: 1.14x faster
- c:m=120:';\n\n '...'rmat;': 21.7 us +- 0.3 us -> 19.2 us +- 0.2 us: 1.13x faster
- en:m=240:'.. XX'...' buil': 9.00 us +- 0.13 us -> 7.95 us +- 0.09 us: 1.13x faster
- en:m=160:'\n:cla'...'set o': 9.96 us +- 0.15 us -> 8.79 us +- 0.11 us: 1.13x faster
- py:m=120:'dates'...'rithm': 12.1 us +- 0.2 us -> 10.6 us +- 0.1 us: 1.13x faster
- py:m=240:' '...'en(de': 7.13 us +- 0.17 us -> 6.30 us +- 0.08 us: 1.13x faster
- py:m=120:'rec, '...'.flag': 8.12 us +- 0.09 us -> 7.18 us +- 0.06 us: 1.13x faster
- en:m=240:'slici'...' inte': 8.24 us +- 0.10 us -> 7.29 us +- 0.07 us: 1.13x faster
- c:m=160:'ULL;\n'...'TH(bu': 15.6 us +- 0.2 us -> 13.8 us +- 0.1 us: 1.13x faster
- bin:m=320:b'\x00\x00\x00\x00\x00'...b'\x00\x00\x00\x00\x00': 8.92 us +- 0.09 us -> 7.89 us +- 0.11 us: 1.13x faster
- en:m=120:'.. XX'...'*****': 9.86 us +- 0.16 us -> 8.72 us +- 0.10 us: 1.13x faster
- c:m=160:' '...'r *p;': 19.0 us +- 0.3 us -> 16.9 us +- 0.2 us: 1.13x faster
- en:m=320:'2\\t01'...':: by': 10.7 us +- 0.1 us -> 9.55 us +- 0.09 us: 1.12x faster
- en:m=120:'ng on'...'te fo': 11.3 us +- 0.1 us -> 10.1 us +- 0.1 us: 1.12x faster
- bin:m=240:b'e\xff\xbf\x8cK'...b'BB\xffBB': 4.91 us +- 0.07 us -> 4.38 us +- 0.04 us: 1.12x faster
- py:m=120:'# Cop'...'edu>\n': 11.0 us +- 0.1 us -> 9.79 us +- 0.10 us: 1.12x faster
- c:m=240:'UNICO'...' ': 19.0 us +- 0.2 us -> 17.0 us +- 0.2 us: 1.12x faster
- py:m=120:' '...'finit': 9.51 us +- 0.13 us -> 8.50 us +- 0.11 us: 1.12x faster
- c:m=320:' '...' writ': 14.9 us +- 0.2 us -> 13.3 us +- 0.2 us: 1.12x faster
- py:m=240:'_sign'...'ubjec': 8.74 us +- 0.10 us -> 7.82 us +- 0.09 us: 1.12x faster
- c:m=120:'CODE_'...'it(&w': 21.0 us +- 0.2 us -> 19.0 us +- 0.2 us: 1.11x faster
- en:m=320:'e use'...'tdin>': 8.79 us +- 0.13 us -> 7.93 us +- 0.09 us: 1.11x faster
- py:m=240:'Etiny'...'wer_e': 8.69 us +- 0.14 us -> 7.87 us +- 0.08 us: 1.10x faster
- c:m=160:'\n '...'harac': 18.0 us +- 0.2 us -> 16.3 us +- 0.3 us: 1.10x faster
- en:m=320:'.. XX'...', cla': 8.28 us +- 0.08 us -> 7.50 us +- 0.08 us: 1.10x faster
- c:m=160:'_capi'...'t cha': 16.0 us +- 0.2 us -> 14.5 us +- 0.2 us: 1.10x faster
- py:m=80:':\n '...'min_w': 15.1 us +- 0.2 us -> 13.7 us +- 0.1 us: 1.10x faster
- bin:m=80:b'\x00\x00\x00\x00\x00'...b'\x00\x00\x00\x00\x00': 12.1 us +- 0.2 us -> 11.0 us +- 0.2 us: 1.10x faster
- en:m=120:'if th'...'or mo': 13.0 us +- 0.1 us -> 11.9 us +- 0.2 us: 1.09x faster
- en:m=320:'ipula'...'t way': 9.07 us +- 0.12 us -> 8.29 us +- 0.08 us: 1.09x faster
- py:m=160:' = 18'...')\n4.8': 9.91 us +- 0.13 us -> 9.07 us +- 0.09 us: 1.09x faster
- en:m=120:'", c_'...' memo': 10.4 us +- 0.2 us -> 9.51 us +- 0.16 us: 1.09x faster
- c:m=240:'tion)'...'}\n};\n': 17.6 us +- 0.3 us -> 16.1 us +- 0.2 us: 1.09x faster
- bin:m=320:b'\xa2r7\xff\xa0'...b'\xffk\xe5\xff\xff': 2.51 us +- 0.04 us -> 2.30 us +- 0.03 us: 1.09x faster
- py:m=160:'# Cop'...'t tan': 9.55 us +- 0.16 us -> 8.76 us +- 0.10 us: 1.09x faster
- c:m=60:'\n '...'ck to': 33.2 us +- 0.5 us -> 30.7 us +- 0.2 us: 1.08x faster
- c:m=240:'/*\n\nU'...' Dalk': 14.6 us +- 0.1 us -> 13.5 us +- 0.1 us: 1.08x faster
- py:m=40:'teger'...' e': 22.8 us +- 0.4 us -> 21.2 us +- 0.3 us: 1.07x faster
- py:m=320:', Dec'...'e, th': 8.94 us +- 0.07 us -> 8.34 us +- 0.09 us: 1.07x faster
- py:m=10:"l('0'"...')\n ': 72.9 us +- 1.0 us -> 68.2 us +- 0.9 us: 1.07x faster
- py:m=160:'e_fla'...' cont': 11.7 us +- 0.2 us -> 10.9 us +- 0.1 us: 1.07x faster
- py:m=120:'cimal'...' Dec': 10.3 us +- 0.1 us -> 9.66 us +- 0.11 us: 1.07x faster
- py:m=240:'# Cop'...'z <aa': 8.65 us +- 0.07 us -> 8.12 us +- 0.08 us: 1.07x faster
- en:m=120:' | st'...'-----': 7.45 us +- 0.10 us -> 6.99 us +- 0.08 us: 1.07x faster
- c:m=320:',\n '...'NULL)': 15.0 us +- 0.2 us -> 14.1 us +- 0.1 us: 1.07x faster
- c:m=10:'/*\n\nU'...'nicod': 67.9 us +- 2.1 us -> 63.8 us +- 0.6 us: 1.06x faster
- c:m=240:'s: Di'...'um wi': 16.8 us +- 0.2 us -> 15.8 us +- 0.2 us: 1.06x faster
- py:m=320:'prec)'...'oundi': 7.75 us +- 0.11 us -> 7.29 us +- 0.08 us: 1.06x faster
- bin:m=240:b's\xe8\xff\xffs'...b'\xff\xa4\xf0\xff\xff': 3.20 us +- 0.04 us -> 3.02 us +- 0.02 us: 1.06x faster
- c:m=320:'/*\n\nU'...'-----': 12.3 us +- 0.2 us -> 11.6 us +- 0.1 us: 1.06x faster
- py:m=320:'elf)\n'...' ': 12.2 us +- 0.2 us -> 11.5 us +- 0.1 us: 1.06x faster
- en:m=320:'ginal'..."t('B'": 6.58 us +- 0.09 us -> 6.22 us +- 0.06 us: 1.06x faster
- py:m=320:' resu'...' ': 9.89 us +- 0.14 us -> 9.35 us +- 0.13 us: 1.06x faster
- c:m=120:'aise '...' != N': 31.9 us +- 0.4 us -> 30.3 us +- 0.3 us: 1.05x faster
- c:m=160:'_RawF'...'fs_co': 17.6 us +- 0.3 us -> 16.7 us +- 0.2 us: 1.05x faster
- en:m=320:'bytes'..."text'": 8.80 us +- 0.09 us -> 8.36 us +- 0.10 us: 1.05x faster
- c:m=10:' \\\n '...' ': 144 us +- 1 us -> 137 us +- 2 us: 1.05x faster
- en:m=240:' gro'...'ds fr': 9.29 us +- 0.13 us -> 8.83 us +- 0.09 us: 1.05x faster
- py:m=120:'t.to_'..."00.0'": 8.61 us +- 0.09 us -> 8.19 us +- 0.08 us: 1.05x faster
- c:m=240:' '...' ca': 17.1 us +- 0.3 us -> 16.2 us +- 0.2 us: 1.05x faster
- py:m=160:'inf:\n'...' ': 14.6 us +- 0.2 us -> 13.9 us +- 0.1 us: 1.05x faster
- py:m=30:'if f '...' k': 22.5 us +- 0.3 us -> 21.4 us +- 0.2 us: 1.05x faster
- en:m=320:'ss th'...'ances': 8.54 us +- 0.19 us -> 8.13 us +- 0.07 us: 1.05x faster
- c:m=320:'CODE_'...'le(Py': 13.8 us +- 0.2 us -> 13.2 us +- 0.1 us: 1.05x faster
- en:m=40:' widt'...' an `': 19.9 us +- 0.4 us -> 19.0 us +- 0.3 us: 1.05x faster
- en:m=10:'\n\n '...' ': 43.4 us +- 0.5 us -> 41.5 us +- 0.4 us: 1.05x faster
- py:m=30:'ntege'...' if n': 23.0 us +- 0.3 us -> 22.1 us +- 0.2 us: 1.04x faster
- bin:m=60:b'\xd6\xff\xffb\xdc'...b'\x00\x00\x00\x00\x00': 22.5 us +- 0.3 us -> 21.7 us +- 0.3 us: 1.04x faster
- c:m=160:' '...'icode': 24.0 us +- 0.3 us -> 23.2 us +- 0.3 us: 1.04x faster
- py:m=240:'t(pre'...'58979': 7.64 us +- 0.09 us -> 7.37 us +- 0.06 us: 1.04x faster
- c:m=15:'oc = '...'CS4 *': 89.6 us +- 1.3 us -> 86.6 us +- 1.7 us: 1.03x faster
- bin:m=160:b'MZ\x90\x00\x03'...b'\x89\x9c!C\x88': 4.46 us +- 0.06 us -> 4.32 us +- 0.05 us: 1.03x faster
- en:m=160:' incl'..."'C' o": 8.64 us +- 0.07 us -> 8.38 us +- 0.16 us: 1.03x faster
- bin:m=240:b'A\x940\x91B'...b'\xfb\xf6\xed\xc3\x9e': 3.59 us +- 0.06 us -> 3.48 us +- 0.03 us: 1.03x faster
- py:m=80:')\n '...' # s': 17.0 us +- 0.3 us -> 16.5 us +- 0.1 us: 1.03x faster
- bin:m=20:b'MZ\x90\x00\x03'...b'\x00\xb8\x00\x00\x00': 27.6 us +- 0.4 us -> 26.9 us +- 0.2 us: 1.03x faster
- c:m=320:'regul'...'racte': 15.4 us +- 0.2 us -> 14.9 us +- 0.1 us: 1.03x faster
- py:m=160:'._exp'...'erflo': 9.62 us +- 0.16 us -> 9.38 us +- 0.11 us: 1.03x faster
- c:m=160:' _PyU'...'d;\n ': 30.0 us +- 0.3 us -> 29.3 us +- 0.3 us: 1.02x faster
- bin:m=30:b'\xba@_i\x1c'...b'\xf0\x10\x801\xa3': 24.6 us +- 0.2 us -> 24.1 us +- 0.3 us: 1.02x faster
- py:m=60:'retur'...'ions.': 13.6 us +- 0.2 us -> 13.4 us +- 0.2 us: 1.02x faster
- py:m=120:'lse:\n'...' ': 15.0 us +- 0.2 us -> 14.8 us +- 0.1 us: 1.01x faster
- py:m=20:' '...'NaN (': 29.9 us +- 0.4 us -> 29.5 us +- 0.2 us: 1.01x faster
- bin:m=320:b'\xcc\xcc\xcc\xcc\xcc'...b'\xcc\xcc\xcc\xcc\xcc': 3.86 us +- 0.04 us -> 3.80 us +- 0.08 us: 1.01x faster
- bin:m=240:b'\xcc\xcc\xcc\xcc\xcc'...b'\xcc\xcc\xcc\xcc\xcc': 3.70 us +- 0.03 us -> 3.66 us +- 0.03 us: 1.01x faster
- c:m=80:'ted s'...'ed ch': 26.7 us +- 0.4 us -> 26.4 us +- 0.2 us: 1.01x faster
Benchmark hidden because not significant (11): c:m=20:'9f9f3'...'*/\n{\n', c:m=30:', p, '...' r', py:m=160:' # u'...'f = _', py:m=160:'EEE 7'...'pleme', c:m=240:'Exc_V'...'l;\n ', c:m=240:'ssert'...'de) +', en:m=240:'is st'...'tes-l', c:m=320:'er, c'...' ', c:m=320:';\n '...'encod', py:m=320:'lity_'...'nted:', bin:m=320:b'\x00\xf8\xf3\xee\x00'...b'\x00\x00\x00\x00\x00'
Geometric mean: 1.33x faster
from random import Random
import pyperf
# shuffled alphabet
alphabet = 'DHUXYEZQCLFKISBVRGNAMWPTOJ'
zipf = [1/x for x in range(1, 1+len(alphabet))]
def zipf_string(length, seed):
letters = Random(seed).choices(alphabet, weights=zipf, k=length)
return ''.join(letters)
needle_lengths = [
2, 3, 4, 6,
8, 12, 16, 24,
32, 48, 64, 96,
128, 192, 256, 384
]
haystack_lengths = [
500, 750, 1000, 1500,
2000, 3000, 4000, 6000,
8000, 12000, 16000, 24000,
32000, 48000, 64000, 96000,
]
def generate_benchmarks():
output = []
for m in needle_lengths:
for n in haystack_lengths:
if n < m:
continue
for s in (1, 2, 3):
seed = (s*n + m) % 1_000_003
needle = zipf_string(m, seed)
haystack = zipf_string(n, seed ** 2)
name = f"needle={m}, haystack={n}, seed={s}"
output.append((name, needle, haystack))
with open("_generated.py", 'w') as f:
print("benches = [", file=f)
for name, needle, haystack in output:
print(f" {(name, needle, haystack)!r},", file=f)
print("]", file=f)
def bench(loops, needle, haystack):
range_it = iter(range(loops))
t0 = pyperf.perf_counter()
for _ in range_it:
haystack.count(needle)
haystack.count(needle)
haystack.count(needle)
haystack.count(needle)
haystack.count(needle)
haystack.count(needle)
haystack.count(needle)
haystack.count(needle)
haystack.count(needle)
haystack.count(needle)
return pyperf.perf_counter() - t0
def do_timings():
import pyperf
runner = pyperf.Runner()
runner._process_priority = lambda *args: None
from _generated import benches
for name, needle, haystack in benches:
runner.bench_time_func(
name,
bench, needle, haystack,
inner_loops=10,
)
if __name__ == "__main__":
# generate_benchmarks()
do_timings()
PS C:\Users\sween\Source\Repos\cpython2\cpython> .\python.bat -m pyperf compare_to .\pyperf-main-final.json .\pyperf-bm-final.json -G
Running Release|x64 interpreter...
Slower (83):
- needle=24, haystack=32000, seed=1: 5.05 us +- 0.08 us -> 8.00 us +- 0.09 us: 1.59x slower
- needle=6, haystack=32000, seed=1: 12.7 us +- 0.1 us -> 19.5 us +- 0.2 us: 1.54x slower
- needle=32, haystack=32000, seed=1: 6.01 us +- 0.06 us -> 8.08 us +- 0.13 us: 1.34x slower
- needle=64, haystack=32000, seed=2: 4.03 us +- 0.05 us -> 5.36 us +- 0.06 us: 1.33x slower
- needle=96, haystack=48000, seed=1: 6.65 us +- 0.06 us -> 8.59 us +- 0.08 us: 1.29x slower
- needle=128, haystack=3000, seed=2: 733 ns +- 8 ns -> 921 ns +- 20 ns: 1.26x slower
- needle=24, haystack=32000, seed=3: 6.72 us +- 0.07 us -> 8.26 us +- 0.08 us: 1.23x slower
- needle=96, haystack=32000, seed=1: 4.19 us +- 0.05 us -> 5.10 us +- 0.06 us: 1.22x slower
- needle=2, haystack=4000, seed=1: 1.38 us +- 0.01 us -> 1.66 us +- 0.01 us: 1.20x slower
- needle=64, haystack=32000, seed=1: 4.60 us +- 0.06 us -> 5.38 us +- 0.07 us: 1.17x slower
- needle=2, haystack=2000, seed=2: 742 ns +- 15 ns -> 868 ns +- 8 ns: 1.17x slower
- needle=8, haystack=32000, seed=3: 14.4 us +- 0.2 us -> 16.7 us +- 0.2 us: 1.16x slower
- needle=3, haystack=16000, seed=1: 4.45 us +- 0.09 us -> 5.14 us +- 0.08 us: 1.16x slower
- needle=2, haystack=16000, seed=2: 5.90 us +- 0.09 us -> 6.79 us +- 0.10 us: 1.15x slower
- needle=3, haystack=8000, seed=2: 2.20 us +- 0.04 us -> 2.54 us +- 0.03 us: 1.15x slower
- needle=128, haystack=6000, seed=2: 1.24 us +- 0.01 us -> 1.40 us +- 0.02 us: 1.14x slower
- needle=2, haystack=32000, seed=3: 12.6 us +- 0.2 us -> 14.2 us +- 0.2 us: 1.13x slower
- needle=2, haystack=48000, seed=2: 19.2 us +- 0.1 us -> 21.6 us +- 0.2 us: 1.12x slower
- needle=2, haystack=32000, seed=1: 12.4 us +- 0.6 us -> 13.9 us +- 0.1 us: 1.12x slower
- needle=128, haystack=12000, seed=1: 2.08 us +- 0.02 us -> 2.33 us +- 0.02 us: 1.12x slower
- needle=2, haystack=96000, seed=1: 40.6 us +- 0.5 us -> 45.1 us +- 0.4 us: 1.11x slower
- needle=3, haystack=6000, seed=1: 1.65 us +- 0.05 us -> 1.82 us +- 0.02 us: 1.10x slower
- needle=64, haystack=64000, seed=1: 9.66 us +- 0.06 us -> 10.7 us +- 0.1 us: 1.10x slower
- needle=2, haystack=4000, seed=3: 1.61 us +- 0.03 us -> 1.77 us +- 0.05 us: 1.10x slower
- needle=2, haystack=2000, seed=1: 764 ns +- 20 ns -> 836 ns +- 12 ns: 1.10x slower
- needle=2, haystack=24000, seed=3: 10.6 us +- 0.1 us -> 11.5 us +- 0.2 us: 1.09x slower
- needle=192, haystack=12000, seed=3: 2.16 us +- 0.02 us -> 2.35 us +- 0.02 us: 1.09x slower
- needle=2, haystack=8000, seed=1: 3.22 us +- 0.06 us -> 3.51 us +- 0.05 us: 1.09x slower
- needle=2, haystack=1000, seed=2: 434 ns +- 8 ns -> 473 ns +- 6 ns: 1.09x slower
- needle=64, haystack=48000, seed=3: 8.39 us +- 0.06 us -> 9.11 us +- 0.09 us: 1.09x slower
- needle=3, haystack=3000, seed=1: 871 ns +- 23 ns -> 946 ns +- 14 ns: 1.09x slower
- needle=2, haystack=750, seed=1: 341 ns +- 6 ns -> 370 ns +- 6 ns: 1.08x slower
- needle=2, haystack=12000, seed=2: 4.82 us +- 0.05 us -> 5.22 us +- 0.08 us: 1.08x slower
- needle=96, haystack=64000, seed=3: 10.3 us +- 0.2 us -> 11.2 us +- 0.1 us: 1.08x slower
- needle=3, haystack=4000, seed=3: 1.19 us +- 0.02 us -> 1.29 us +- 0.02 us: 1.08x slower
- needle=3, haystack=1500, seed=2: 482 ns +- 5 ns -> 521 ns +- 8 ns: 1.08x slower
- needle=2, haystack=6000, seed=2: 2.45 us +- 0.03 us -> 2.65 us +- 0.04 us: 1.08x slower
- needle=128, haystack=4000, seed=1: 891 ns +- 18 ns -> 961 ns +- 8 ns: 1.08x slower
- needle=2, haystack=4000, seed=2: 1.59 us +- 0.03 us -> 1.72 us +- 0.03 us: 1.08x slower
- needle=2, haystack=1500, seed=3: 610 ns +- 9 ns -> 656 ns +- 8 ns: 1.08x slower
- needle=2, haystack=8000, seed=3: 3.07 us +- 0.04 us -> 3.29 us +- 0.04 us: 1.07x slower
- needle=256, haystack=4000, seed=3: 1.20 us +- 0.01 us -> 1.29 us +- 0.02 us: 1.07x slower
- needle=2, haystack=3000, seed=3: 1.28 us +- 0.01 us -> 1.37 us +- 0.01 us: 1.07x slower
- needle=2, haystack=8000, seed=2: 3.51 us +- 0.05 us -> 3.75 us +- 0.09 us: 1.07x slower
- needle=3, haystack=1000, seed=3: 358 ns +- 11 ns -> 383 ns +- 6 ns: 1.07x slower
- needle=384, haystack=64000, seed=1: 13.6 us +- 0.2 us -> 14.5 us +- 0.1 us: 1.07x slower
- needle=6, haystack=32000, seed=3: 19.9 us +- 0.4 us -> 21.1 us +- 0.2 us: 1.06x slower
- needle=128, haystack=4000, seed=3: 1.00 us +- 0.03 us -> 1.06 us +- 0.01 us: 1.06x slower
- needle=2, haystack=500, seed=2: 293 ns +- 3 ns -> 310 ns +- 10 ns: 1.06x slower
- needle=3, haystack=12000, seed=1: 3.72 us +- 0.07 us -> 3.92 us +- 0.06 us: 1.05x slower
- needle=128, haystack=4000, seed=2: 953 ns +- 15 ns -> 1.00 us +- 0.01 us: 1.05x slower
- needle=3, haystack=6000, seed=2: 1.80 us +- 0.03 us -> 1.89 us +- 0.02 us: 1.05x slower
- needle=192, haystack=16000, seed=2: 2.65 us +- 0.04 us -> 2.79 us +- 0.03 us: 1.05x slower
- needle=2, haystack=750, seed=3: 494 ns +- 4 ns -> 517 ns +- 6 ns: 1.05x slower
- needle=128, haystack=12000, seed=3: 2.15 us +- 0.01 us -> 2.24 us +- 0.02 us: 1.04x slower
- needle=3, haystack=2000, seed=3: 645 ns +- 27 ns -> 673 ns +- 15 ns: 1.04x slower
- needle=3, haystack=3000, seed=2: 898 ns +- 24 ns -> 934 ns +- 16 ns: 1.04x slower
- needle=128, haystack=6000, seed=1: 1.25 us +- 0.02 us -> 1.30 us +- 0.01 us: 1.04x slower
- needle=96, haystack=96000, seed=2: 15.9 us +- 0.1 us -> 16.5 us +- 0.1 us: 1.04x slower
- needle=8, haystack=48000, seed=3: 23.0 us +- 0.5 us -> 23.9 us +- 0.3 us: 1.04x slower
- needle=4, haystack=1500, seed=3: 430 ns +- 14 ns -> 446 ns +- 9 ns: 1.04x slower
- needle=3, haystack=750, seed=3: 296 ns +- 4 ns -> 307 ns +- 4 ns: 1.03x slower
- needle=2, haystack=500, seed=3: 304 ns +- 5 ns -> 314 ns +- 10 ns: 1.03x slower
- needle=2, haystack=24000, seed=1: 12.0 us +- 0.2 us -> 12.4 us +- 0.2 us: 1.03x slower
- needle=2, haystack=1000, seed=1: 477 ns +- 11 ns -> 492 ns +- 7 ns: 1.03x slower
- needle=64, haystack=32000, seed=3: 4.83 us +- 0.06 us -> 4.97 us +- 0.05 us: 1.03x slower
- needle=8, haystack=12000, seed=3: 5.46 us +- 0.08 us -> 5.62 us +- 0.12 us: 1.03x slower
- needle=32, haystack=64000, seed=3: 15.8 us +- 0.2 us -> 16.3 us +- 0.2 us: 1.03x slower
- needle=32, haystack=64000, seed=2: 16.8 us +- 0.2 us -> 17.3 us +- 0.2 us: 1.03x slower
- needle=48, haystack=96000, seed=3: 17.2 us +- 0.2 us -> 17.7 us +- 0.2 us: 1.03x slower
- needle=3, haystack=500, seed=2: 244 ns +- 4 ns -> 250 ns +- 3 ns: 1.03x slower
- needle=24, haystack=48000, seed=1: 12.7 us +- 0.2 us -> 13.0 us +- 0.3 us: 1.03x slower
- needle=6, haystack=1500, seed=2: 347 ns +- 6 ns -> 355 ns +- 7 ns: 1.03x slower
- needle=3, haystack=1000, seed=1: 400 ns +- 5 ns -> 408 ns +- 7 ns: 1.02x slower
- needle=192, haystack=2000, seed=2: 615 ns +- 6 ns -> 628 ns +- 6 ns: 1.02x slower
- needle=4, haystack=1000, seed=1: 328 ns +- 9 ns -> 333 ns +- 6 ns: 1.02x slower
- needle=6, haystack=1000, seed=3: 258 ns +- 6 ns -> 262 ns +- 4 ns: 1.02x slower
- needle=384, haystack=32000, seed=2: 7.14 us +- 0.10 us -> 7.25 us +- 0.07 us: 1.01x slower
- needle=256, haystack=6000, seed=2: 1.48 us +- 0.02 us -> 1.50 us +- 0.03 us: 1.01x slower
- needle=8, haystack=48000, seed=2: 24.8 us +- 0.6 us -> 25.1 us +- 0.3 us: 1.01x slower
- needle=2, haystack=6000, seed=3: 2.95 us +- 0.06 us -> 2.99 us +- 0.06 us: 1.01x slower
- needle=2, haystack=1500, seed=1: 744 ns +- 9 ns -> 753 ns +- 8 ns: 1.01x slower
- needle=192, haystack=3000, seed=1: 885 ns +- 10 ns -> 894 ns +- 8 ns: 1.01x slower
Faster (654):
- needle=96, haystack=64000, seed=2: 45.5 us +- 0.6 us -> 10.1 us +- 0.1 us: 4.49x faster
- needle=96, haystack=96000, seed=3: 49.5 us +- 0.8 us -> 15.1 us +- 0.1 us: 3.28x faster
- needle=12, haystack=48000, seed=1: 48.8 us +- 0.3 us -> 18.4 us +- 0.2 us: 2.65x faster
- needle=48, haystack=48000, seed=1: 19.6 us +- 0.2 us -> 7.99 us +- 0.07 us: 2.46x faster
- needle=64, haystack=64000, seed=2: 19.9 us +- 0.1 us -> 8.34 us +- 0.11 us: 2.39x faster
- needle=24, haystack=96000, seed=3: 55.3 us +- 0.5 us -> 23.3 us +- 0.3 us: 2.37x faster
- needle=8, haystack=32000, seed=1: 33.7 us +- 0.3 us -> 15.1 us +- 0.2 us: 2.22x faster
- needle=64, haystack=96000, seed=1: 35.2 us +- 1.4 us -> 16.4 us +- 0.2 us: 2.15x faster
- needle=12, haystack=32000, seed=1: 19.1 us +- 0.2 us -> 9.35 us +- 0.14 us: 2.04x faster
- needle=32, haystack=64000, seed=1: 18.0 us +- 0.3 us -> 9.63 us +- 0.09 us: 1.87x faster
- needle=16, haystack=64000, seed=2: 36.2 us +- 0.5 us -> 19.6 us +- 0.2 us: 1.85x faster
- needle=48, haystack=32000, seed=1: 11.7 us +- 0.1 us -> 6.37 us +- 0.06 us: 1.84x faster
- needle=12, haystack=96000, seed=2: 75.8 us +- 0.9 us -> 41.6 us +- 0.5 us: 1.82x faster
- needle=48, haystack=96000, seed=1: 34.3 us +- 0.4 us -> 19.0 us +- 0.2 us: 1.81x faster
- needle=12, haystack=64000, seed=3: 46.7 us +- 0.5 us -> 25.9 us +- 0.3 us: 1.81x faster
- needle=64, haystack=96000, seed=2: 24.7 us +- 0.5 us -> 13.9 us +- 0.2 us: 1.77x faster
- needle=6, haystack=64000, seed=1: 76.5 us +- 1.2 us -> 43.9 us +- 0.5 us: 1.74x faster
- needle=6, haystack=32000, seed=2: 33.0 us +- 0.3 us -> 19.0 us +- 0.2 us: 1.74x faster
- needle=32, haystack=48000, seed=3: 14.7 us +- 0.2 us -> 8.51 us +- 0.12 us: 1.73x faster
- needle=96, haystack=64000, seed=1: 16.2 us +- 0.2 us -> 9.51 us +- 0.07 us: 1.70x faster
- needle=96, haystack=32000, seed=2: 7.69 us +- 0.08 us -> 4.64 us +- 0.06 us: 1.66x faster
- needle=16, haystack=48000, seed=1: 22.2 us +- 0.4 us -> 13.8 us +- 0.1 us: 1.61x faster
- needle=8, haystack=96000, seed=3: 82.8 us +- 2.0 us -> 51.9 us +- 0.8 us: 1.60x faster
- needle=16, haystack=48000, seed=3: 22.0 us +- 0.6 us -> 13.8 us +- 0.2 us: 1.59x faster
- needle=192, haystack=48000, seed=3: 11.4 us +- 0.1 us -> 7.18 us +- 0.05 us: 1.59x faster
- needle=192, haystack=24000, seed=3: 4.26 us +- 0.04 us -> 2.70 us +- 0.03 us: 1.58x faster
- needle=64, haystack=48000, seed=2: 12.1 us +- 0.1 us -> 7.71 us +- 0.08 us: 1.57x faster
- needle=24, haystack=96000, seed=1: 41.8 us +- 0.5 us -> 27.0 us +- 0.2 us: 1.55x faster
- needle=48, haystack=48000, seed=3: 16.8 us +- 0.2 us -> 10.9 us +- 0.1 us: 1.55x faster
- needle=128, haystack=24000, seed=1: 4.34 us +- 0.05 us -> 2.82 us +- 0.03 us: 1.54x faster
- needle=16, haystack=96000, seed=3: 47.9 us +- 0.6 us -> 31.2 us +- 0.2 us: 1.53x faster
- needle=6, haystack=96000, seed=3: 127 us +- 2 us -> 83.5 us +- 1.1 us: 1.52x faster
- needle=96, haystack=48000, seed=3: 12.2 us +- 0.1 us -> 8.11 us +- 0.07 us: 1.50x faster
- needle=48, haystack=48000, seed=2: 13.8 us +- 0.1 us -> 9.20 us +- 0.09 us: 1.50x faster
- needle=64, haystack=64000, seed=3: 14.1 us +- 1.1 us -> 9.58 us +- 0.29 us: 1.48x faster
- needle=24, haystack=96000, seed=2: 34.9 us +- 0.4 us -> 24.0 us +- 0.3 us: 1.46x faster
- needle=128, haystack=64000, seed=2: 10.7 us +- 0.1 us -> 7.50 us +- 0.06 us: 1.43x faster
- needle=128, haystack=12000, seed=2: 2.19 us +- 0.02 us -> 1.55 us +- 0.02 us: 1.42x faster
- needle=12, haystack=48000, seed=3: 23.8 us +- 0.3 us -> 17.0 us +- 0.2 us: 1.39x faster
- needle=256, haystack=48000, seed=1: 8.57 us +- 0.07 us -> 6.25 us +- 0.06 us: 1.37x faster
- needle=192, haystack=12000, seed=1: 2.46 us +- 0.02 us -> 1.80 us +- 0.04 us: 1.37x faster
- needle=8, haystack=96000, seed=2: 73.7 us +- 0.8 us -> 54.0 us +- 0.7 us: 1.36x faster
- needle=48, haystack=64000, seed=2: 21.0 us +- 0.4 us -> 15.4 us +- 0.1 us: 1.36x faster
- needle=128, haystack=64000, seed=1: 11.5 us +- 0.1 us -> 8.41 us +- 0.09 us: 1.36x faster
- needle=16, haystack=64000, seed=1: 30.3 us +- 1.9 us -> 22.2 us +- 0.2 us: 1.36x faster
- needle=12, haystack=64000, seed=2: 36.7 us +- 0.6 us -> 27.0 us +- 0.3 us: 1.36x faster
- needle=128, haystack=8000, seed=3: 1.57 us +- 0.02 us -> 1.16 us +- 0.01 us: 1.35x faster
- needle=256, haystack=24000, seed=2: 4.21 us +- 0.05 us -> 3.12 us +- 0.04 us: 1.35x faster
- needle=12, haystack=96000, seed=1: 61.7 us +- 0.6 us -> 45.9 us +- 0.7 us: 1.34x faster
- needle=384, haystack=8000, seed=2: 2.17 us +- 0.02 us -> 1.62 us +- 0.02 us: 1.34x faster
- needle=8, haystack=64000, seed=3: 47.8 us +- 1.2 us -> 35.8 us +- 0.3 us: 1.33x faster
- needle=16, haystack=96000, seed=2: 50.4 us +- 1.0 us -> 38.0 us +- 0.3 us: 1.33x faster
- needle=128, haystack=32000, seed=2: 5.49 us +- 0.05 us -> 4.13 us +- 0.04 us: 1.33x faster
- needle=192, haystack=6000, seed=2: 1.56 us +- 0.01 us -> 1.17 us +- 0.01 us: 1.33x faster
- needle=128, haystack=32000, seed=1: 5.85 us +- 0.06 us -> 4.41 us +- 0.07 us: 1.33x faster
- needle=384, haystack=24000, seed=1: 4.33 us +- 0.05 us -> 3.27 us +- 0.03 us: 1.32x faster
- needle=384, haystack=32000, seed=3: 5.89 us +- 0.05 us -> 4.46 us +- 0.05 us: 1.32x faster
- needle=384, haystack=16000, seed=1: 3.30 us +- 0.03 us -> 2.53 us +- 0.03 us: 1.31x faster
- needle=192, haystack=48000, seed=1: 7.62 us +- 0.07 us -> 5.89 us +- 0.05 us: 1.29x faster
- needle=256, haystack=48000, seed=3: 8.23 us +- 0.15 us -> 6.37 us +- 0.07 us: 1.29x faster
- needle=48, haystack=32000, seed=3: 7.70 us +- 0.15 us -> 5.97 us +- 0.09 us: 1.29x faster
- needle=128, haystack=3000, seed=3: 968 ns +- 9 ns -> 751 ns +- 10 ns: 1.29x faster
- needle=192, haystack=64000, seed=2: 10.3 us +- 0.2 us -> 7.98 us +- 0.09 us: 1.29x faster
- needle=8, haystack=64000, seed=1: 44.8 us +- 0.9 us -> 34.8 us +- 0.3 us: 1.29x faster
- needle=16, haystack=96000, seed=1: 45.5 us +- 0.8 us -> 35.3 us +- 0.3 us: 1.29x faster
- needle=6, haystack=48000, seed=3: 43.2 us +- 0.6 us -> 33.6 us +- 0.3 us: 1.28x faster
- needle=128, haystack=16000, seed=1: 2.85 us +- 0.02 us -> 2.23 us +- 0.03 us: 1.28x faster
- needle=256, haystack=16000, seed=3: 3.06 us +- 0.03 us -> 2.40 us +- 0.03 us: 1.28x faster
- needle=256, haystack=32000, seed=3: 5.39 us +- 0.06 us -> 4.23 us +- 0.04 us: 1.28x faster
- needle=6, haystack=96000, seed=2: 75.1 us +- 1.1 us -> 58.8 us +- 0.6 us: 1.28x faster
- needle=128, haystack=16000, seed=2: 2.94 us +- 0.02 us -> 2.30 us +- 0.02 us: 1.28x faster
- needle=192, haystack=96000, seed=1: 13.9 us +- 0.1 us -> 10.9 us +- 0.3 us: 1.27x faster
- needle=384, haystack=24000, seed=2: 3.55 us +- 0.04 us -> 2.80 us +- 0.03 us: 1.27x faster
- needle=192, haystack=96000, seed=3: 14.8 us +- 0.1 us -> 11.7 us +- 0.2 us: 1.27x faster
- needle=24, haystack=64000, seed=3: 20.1 us +- 0.4 us -> 15.9 us +- 0.1 us: 1.26x faster
- needle=384, haystack=96000, seed=1: 17.0 us +- 0.2 us -> 13.5 us +- 0.1 us: 1.26x faster
- needle=384, haystack=24000, seed=3: 4.84 us +- 0.03 us -> 3.84 us +- 0.03 us: 1.26x faster
- needle=24, haystack=64000, seed=2: 25.1 us +- 0.2 us -> 19.9 us +- 0.2 us: 1.26x faster
- needle=192, haystack=4000, seed=3: 1.16 us +- 0.01 us -> 923 ns +- 9 ns: 1.26x faster
- needle=192, haystack=24000, seed=2: 3.55 us +- 0.04 us -> 2.82 us +- 0.03 us: 1.26x faster
- needle=384, haystack=12000, seed=2: 2.68 us +- 0.02 us -> 2.13 us +- 0.03 us: 1.25x faster
- needle=256, haystack=24000, seed=3: 4.21 us +- 0.04 us -> 3.36 us +- 0.05 us: 1.25x faster
- needle=6, haystack=64000, seed=3: 47.0 us +- 0.7 us -> 37.5 us +- 0.4 us: 1.25x faster
- needle=192, haystack=16000, seed=3: 2.52 us +- 0.03 us -> 2.02 us +- 0.02 us: 1.25x faster
- needle=384, haystack=48000, seed=2: 8.72 us +- 0.10 us -> 6.99 us +- 0.07 us: 1.25x faster
- needle=192, haystack=32000, seed=3: 4.67 us +- 0.05 us -> 3.75 us +- 0.04 us: 1.25x faster
- needle=12, haystack=64000, seed=1: 28.6 us +- 2.5 us -> 22.9 us +- 0.2 us: 1.25x faster
- needle=24, haystack=48000, seed=2: 15.6 us +- 0.2 us -> 12.5 us +- 0.1 us: 1.24x faster
- needle=384, haystack=16000, seed=3: 2.72 us +- 0.04 us -> 2.19 us +- 0.08 us: 1.24x faster
- needle=3, haystack=12000, seed=2: 8.13 us +- 0.09 us -> 6.55 us +- 0.10 us: 1.24x faster
- needle=16, haystack=64000, seed=3: 31.2 us +- 0.3 us -> 25.2 us +- 0.2 us: 1.24x faster
- needle=192, haystack=32000, seed=2: 5.12 us +- 0.06 us -> 4.13 us +- 0.04 us: 1.24x faster
- needle=96, haystack=96000, seed=1: 22.1 us +- 0.3 us -> 17.8 us +- 0.2 us: 1.24x faster
- needle=3, haystack=24000, seed=1: 22.9 us +- 1.5 us -> 18.5 us +- 0.2 us: 1.24x faster
- needle=32, haystack=96000, seed=1: 27.9 us +- 0.3 us -> 22.6 us +- 0.3 us: 1.23x faster
- needle=192, haystack=48000, seed=2: 7.11 us +- 0.07 us -> 5.77 us +- 0.06 us: 1.23x faster
- needle=128, haystack=24000, seed=3: 3.10 us +- 0.03 us -> 2.52 us +- 0.02 us: 1.23x faster
- needle=384, haystack=48000, seed=1: 6.57 us +- 0.08 us -> 5.35 us +- 0.07 us: 1.23x faster
- needle=384, haystack=6000, seed=3: 1.75 us +- 0.02 us -> 1.42 us +- 0.01 us: 1.23x faster
- needle=8, haystack=24000, seed=1: 9.05 us +- 0.10 us -> 7.38 us +- 0.07 us: 1.23x faster
- needle=384, haystack=6000, seed=1: 1.74 us +- 0.02 us -> 1.42 us +- 0.01 us: 1.22x faster
- needle=24, haystack=64000, seed=1: 19.4 us +- 0.2 us -> 15.9 us +- 0.2 us: 1.22x faster
- needle=8, haystack=16000, seed=3: 6.34 us +- 0.18 us -> 5.21 us +- 0.10 us: 1.22x faster
- needle=32, haystack=96000, seed=3: 25.6 us +- 0.3 us -> 21.1 us +- 0.2 us: 1.22x faster
- needle=256, haystack=64000, seed=2: 8.14 us +- 0.07 us -> 6.69 us +- 0.14 us: 1.22x faster
- needle=4, haystack=24000, seed=1: 20.4 us +- 0.3 us -> 16.8 us +- 0.2 us: 1.21x faster
- needle=6, haystack=16000, seed=3: 9.29 us +- 0.16 us -> 7.66 us +- 0.20 us: 1.21x faster
- needle=384, haystack=8000, seed=3: 2.13 us +- 0.02 us -> 1.76 us +- 0.02 us: 1.21x faster
- needle=6, haystack=12000, seed=2: 4.96 us +- 0.11 us -> 4.10 us +- 0.06 us: 1.21x faster
- needle=48, haystack=64000, seed=1: 15.2 us +- 0.1 us -> 12.6 us +- 0.1 us: 1.21x faster
- needle=6, haystack=64000, seed=2: 48.4 us +- 0.6 us -> 40.1 us +- 0.5 us: 1.21x faster
- needle=128, haystack=8000, seed=2: 1.55 us +- 0.01 us -> 1.29 us +- 0.02 us: 1.21x faster
- needle=12, haystack=96000, seed=3: 38.7 us +- 0.3 us -> 32.1 us +- 0.3 us: 1.21x faster
- needle=6, haystack=4000, seed=2: 1.44 us +- 0.12 us -> 1.20 us +- 0.03 us: 1.20x faster
- needle=96, haystack=48000, seed=2: 10.7 us +- 0.2 us -> 8.94 us +- 0.11 us: 1.20x faster
- needle=256, haystack=48000, seed=2: 8.09 us +- 0.07 us -> 6.73 us +- 0.07 us: 1.20x faster
- needle=4, haystack=12000, seed=2: 6.18 us +- 0.13 us -> 5.15 us +- 0.05 us: 1.20x faster
- needle=48, haystack=96000, seed=2: 23.5 us +- 0.4 us -> 19.6 us +- 0.2 us: 1.20x faster
- needle=256, haystack=4000, seed=1: 1.30 us +- 0.02 us -> 1.09 us +- 0.02 us: 1.20x faster
- needle=16, haystack=24000, seed=3: 11.5 us +- 0.7 us -> 9.64 us +- 0.12 us: 1.20x faster
- needle=8, haystack=6000, seed=1: 1.66 us +- 0.04 us -> 1.39 us +- 0.03 us: 1.20x faster
- needle=8, haystack=64000, seed=2: 40.4 us +- 0.7 us -> 33.8 us +- 0.4 us: 1.20x faster
- needle=6, haystack=48000, seed=1: 41.0 us +- 0.6 us -> 34.4 us +- 0.4 us: 1.19x faster
- needle=6, haystack=12000, seed=3: 4.55 us +- 0.13 us -> 3.81 us +- 0.07 us: 1.19x faster
- needle=96, haystack=24000, seed=3: 9.07 us +- 0.11 us -> 7.62 us +- 0.08 us: 1.19x faster
- needle=384, haystack=3000, seed=2: 1.34 us +- 0.02 us -> 1.13 us +- 0.01 us: 1.19x faster
- needle=8, haystack=1000, seed=1: 383 ns +- 9 ns -> 323 ns +- 7 ns: 1.19x faster
- needle=3, haystack=8000, seed=1: 5.22 us +- 0.05 us -> 4.39 us +- 0.08 us: 1.19x faster
- needle=192, haystack=8000, seed=2: 1.58 us +- 0.02 us -> 1.34 us +- 0.02 us: 1.18x faster
- needle=12, haystack=48000, seed=2: 26.0 us +- 0.3 us -> 22.0 us +- 0.3 us: 1.18x faster
- needle=24, haystack=6000, seed=1: 1.03 us +- 0.02 us -> 872 ns +- 12 ns: 1.18x faster
- needle=192, haystack=6000, seed=3: 1.38 us +- 0.01 us -> 1.17 us +- 0.01 us: 1.18x faster
- needle=96, haystack=32000, seed=3: 7.02 us +- 0.10 us -> 5.97 us +- 0.06 us: 1.18x faster
- needle=12, haystack=6000, seed=3: 1.97 us +- 0.05 us -> 1.68 us +- 0.02 us: 1.17x faster
- needle=8, haystack=12000, seed=1: 4.76 us +- 0.08 us -> 4.06 us +- 0.07 us: 1.17x faster
- needle=128, haystack=24000, seed=2: 4.16 us +- 0.04 us -> 3.55 us +- 0.02 us: 1.17x faster
- needle=6, haystack=3000, seed=2: 1.03 us +- 0.03 us -> 880 ns +- 7 ns: 1.17x faster
- needle=8, haystack=3000, seed=2: 863 ns +- 32 ns -> 737 ns +- 9 ns: 1.17x faster
- needle=192, haystack=96000, seed=2: 14.1 us +- 0.2 us -> 12.0 us +- 0.1 us: 1.17x faster
- needle=4, haystack=4000, seed=2: 1.55 us +- 0.08 us -> 1.32 us +- 0.02 us: 1.17x faster
- needle=6, haystack=2000, seed=3: 740 ns +- 21 ns -> 635 ns +- 6 ns: 1.17x faster
- needle=3, haystack=4000, seed=1: 1.83 us +- 0.10 us -> 1.57 us +- 0.02 us: 1.16x faster
- needle=2, haystack=12000, seed=3: 14.9 us +- 0.2 us -> 12.8 us +- 0.4 us: 1.16x faster
- needle=4, haystack=24000, seed=3: 22.7 us +- 0.5 us -> 19.6 us +- 0.2 us: 1.16x faster
- needle=4, haystack=8000, seed=2: 3.38 us +- 0.07 us -> 2.91 us +- 0.04 us: 1.16x faster
- needle=4, haystack=2000, seed=1: 875 ns +- 34 ns -> 755 ns +- 13 ns: 1.16x faster
- needle=8, haystack=4000, seed=3: 1.24 us +- 0.03 us -> 1.07 us +- 0.01 us: 1.16x faster
- needle=256, haystack=32000, seed=2: 5.59 us +- 0.06 us -> 4.83 us +- 0.06 us: 1.16x faster
- needle=4, haystack=6000, seed=3: 2.66 us +- 0.05 us -> 2.30 us +- 0.03 us: 1.16x faster
- needle=6, haystack=6000, seed=3: 1.99 us +- 0.02 us -> 1.72 us +- 0.02 us: 1.16x faster
- needle=32, haystack=12000, seed=2: 1.71 us +- 0.02 us -> 1.48 us +- 0.03 us: 1.15x faster
- needle=16, haystack=4000, seed=1: 750 ns +- 11 ns -> 650 ns +- 8 ns: 1.15x faster
- needle=6, haystack=1500, seed=3: 528 ns +- 20 ns -> 457 ns +- 6 ns: 1.15x faster
- needle=3, haystack=4000, seed=2: 2.05 us +- 0.03 us -> 1.77 us +- 0.02 us: 1.15x faster
- needle=192, haystack=64000, seed=3: 9.47 us +- 0.10 us -> 8.21 us +- 0.06 us: 1.15x faster
- needle=6, haystack=8000, seed=3: 2.79 us +- 0.08 us -> 2.42 us +- 0.03 us: 1.15x faster
- needle=192, haystack=8000, seed=3: 1.46 us +- 0.02 us -> 1.26 us +- 0.02 us: 1.15x faster
- needle=192, haystack=24000, seed=1: 3.21 us +- 0.03 us -> 2.79 us +- 0.03 us: 1.15x faster
- needle=128, haystack=48000, seed=1: 8.60 us +- 0.09 us -> 7.47 us +- 0.08 us: 1.15x faster
- needle=12, haystack=8000, seed=1: 1.82 us +- 0.02 us -> 1.58 us +- 0.02 us: 1.15x faster
- needle=6, haystack=12000, seed=1: 5.23 us +- 0.21 us -> 4.55 us +- 0.09 us: 1.15x faster
- needle=8, haystack=3000, seed=3: 880 ns +- 27 ns -> 765 ns +- 11 ns: 1.15x faster
- needle=384, haystack=48000, seed=3: 6.75 us +- 0.06 us -> 5.87 us +- 0.05 us: 1.15x faster
- needle=24, haystack=24000, seed=1: 8.59 us +- 0.09 us -> 7.48 us +- 0.08 us: 1.15x faster
- needle=6, haystack=4000, seed=1: 1.40 us +- 0.05 us -> 1.22 us +- 0.01 us: 1.15x faster
- needle=12, haystack=4000, seed=2: 938 ns +- 11 ns -> 818 ns +- 12 ns: 1.15x faster
- needle=384, haystack=4000, seed=3: 1.62 us +- 0.01 us -> 1.41 us +- 0.01 us: 1.15x faster
- needle=8, haystack=1500, seed=1: 438 ns +- 10 ns -> 382 ns +- 9 ns: 1.15x faster
- needle=12, haystack=8000, seed=2: 1.58 us +- 0.03 us -> 1.38 us +- 0.02 us: 1.15x faster
- needle=8, haystack=96000, seed=1: 58.3 us +- 1.3 us -> 51.0 us +- 0.6 us: 1.14x faster
- needle=16, haystack=48000, seed=2: 20.3 us +- 0.6 us -> 17.8 us +- 0.1 us: 1.14x faster
- needle=6, haystack=8000, seed=2: 2.52 us +- 0.03 us -> 2.20 us +- 0.03 us: 1.14x faster
- needle=16, haystack=12000, seed=2: 2.34 us +- 0.03 us -> 2.05 us +- 0.02 us: 1.14x faster
- needle=256, haystack=3000, seed=2: 1.18 us +- 0.01 us -> 1.04 us +- 0.01 us: 1.14x faster
- needle=16, haystack=12000, seed=1: 1.84 us +- 0.02 us -> 1.61 us +- 0.03 us: 1.14x faster
- needle=256, haystack=8000, seed=1: 1.98 us +- 0.04 us -> 1.73 us +- 0.02 us: 1.14x faster
- needle=12, haystack=12000, seed=1: 2.16 us +- 0.02 us -> 1.90 us +- 0.02 us: 1.14x faster
- needle=16, haystack=8000, seed=3: 1.60 us +- 0.02 us -> 1.40 us +- 0.02 us: 1.14x faster
- needle=8, haystack=2000, seed=3: 595 ns +- 8 ns -> 522 ns +- 4 ns: 1.14x faster
- needle=12, haystack=2000, seed=2: 531 ns +- 16 ns -> 466 ns +- 7 ns: 1.14x faster
- needle=4, haystack=6000, seed=2: 2.62 us +- 0.05 us -> 2.30 us +- 0.04 us: 1.14x faster
- needle=4, haystack=64000, seed=2: 65.5 us +- 1.3 us -> 57.5 us +- 0.7 us: 1.14x faster
- needle=24, haystack=3000, seed=2: 558 ns +- 10 ns -> 491 ns +- 6 ns: 1.14x faster
- needle=6, haystack=4000, seed=3: 1.19 us +- 0.08 us -> 1.05 us +- 0.02 us: 1.14x faster
- needle=6, haystack=6000, seed=1: 1.86 us +- 0.02 us -> 1.64 us +- 0.02 us: 1.14x faster
- needle=4, haystack=750, seed=3: 368 ns +- 9 ns -> 324 ns +- 6 ns: 1.14x faster
- needle=256, haystack=12000, seed=3: 2.06 us +- 0.03 us -> 1.81 us +- 0.01 us: 1.14x faster
- needle=256, haystack=96000, seed=1: 15.5 us +- 0.2 us -> 13.7 us +- 0.1 us: 1.13x faster
- needle=128, haystack=16000, seed=3: 2.76 us +- 0.03 us -> 2.43 us +- 0.02 us: 1.13x faster
- needle=24, haystack=48000, seed=3: 14.1 us +- 0.1 us -> 12.4 us +- 0.1 us: 1.13x faster
- needle=16, haystack=12000, seed=3: 2.09 us +- 0.03 us -> 1.84 us +- 0.02 us: 1.13x faster
- needle=3, haystack=3000, seed=3: 1.33 us +- 0.02 us -> 1.17 us +- 0.03 us: 1.13x faster
- needle=4, haystack=96000, seed=3: 79.5 us +- 0.8 us -> 70.2 us +- 0.7 us: 1.13x faster
- needle=12, haystack=4000, seed=1: 949 ns +- 12 ns -> 839 ns +- 14 ns: 1.13x faster
- needle=24, haystack=16000, seed=3: 2.37 us +- 0.03 us -> 2.10 us +- 0.03 us: 1.13x faster
- needle=12, haystack=6000, seed=1: 1.38 us +- 0.04 us -> 1.22 us +- 0.02 us: 1.13x faster
- needle=8, haystack=4000, seed=2: 1.26 us +- 0.03 us -> 1.11 us +- 0.02 us: 1.13x faster
- needle=16, haystack=32000, seed=2: 12.4 us +- 0.2 us -> 11.0 us +- 0.1 us: 1.13x faster
- needle=48, haystack=12000, seed=3: 1.33 us +- 0.02 us -> 1.18 us +- 0.02 us: 1.13x faster
- needle=256, haystack=64000, seed=3: 8.13 us +- 0.06 us -> 7.19 us +- 0.06 us: 1.13x faster
- needle=8, haystack=6000, seed=2: 1.80 us +- 0.05 us -> 1.59 us +- 0.02 us: 1.13x faster
- needle=8, haystack=1500, seed=3: 464 ns +- 10 ns -> 410 ns +- 6 ns: 1.13x faster
- needle=24, haystack=12000, seed=2: 2.50 us +- 0.05 us -> 2.22 us +- 0.02 us: 1.13x faster
- needle=32, haystack=16000, seed=2: 2.44 us +- 0.09 us -> 2.16 us +- 0.05 us: 1.13x faster
- needle=6, haystack=8000, seed=1: 2.64 us +- 0.05 us -> 2.34 us +- 0.03 us: 1.13x faster
- needle=32, haystack=48000, seed=2: 12.6 us +- 0.1 us -> 11.2 us +- 0.1 us: 1.13x faster
- needle=24, haystack=3000, seed=3: 534 ns +- 5 ns -> 473 ns +- 6 ns: 1.13x faster
- needle=12, haystack=6000, seed=2: 1.10 us +- 0.02 us -> 972 ns +- 18 ns: 1.13x faster
- needle=24, haystack=8000, seed=3: 1.67 us +- 0.03 us -> 1.48 us +- 0.02 us: 1.13x faster
- needle=4, haystack=16000, seed=1: 15.6 us +- 0.2 us -> 13.8 us +- 0.2 us: 1.13x faster
- needle=8, haystack=2000, seed=1: 582 ns +- 13 ns -> 517 ns +- 6 ns: 1.13x faster
- needle=24, haystack=8000, seed=1: 1.35 us +- 0.03 us -> 1.20 us +- 0.02 us: 1.13x faster
- needle=16, haystack=4000, seed=2: 780 ns +- 12 ns -> 693 ns +- 13 ns: 1.13x faster
- needle=32, haystack=24000, seed=2: 3.67 us +- 0.05 us -> 3.26 us +- 0.04 us: 1.12x faster
- needle=24, haystack=1000, seed=2: 269 ns +- 4 ns -> 239 ns +- 2 ns: 1.12x faster
- needle=192, haystack=64000, seed=1: 9.59 us +- 0.09 us -> 8.54 us +- 0.09 us: 1.12x faster
- needle=16, haystack=1500, seed=2: 440 ns +- 11 ns -> 391 ns +- 5 ns: 1.12x faster
- needle=256, haystack=6000, seed=1: 1.58 us +- 0.02 us -> 1.41 us +- 0.01 us: 1.12x faster
- needle=64, haystack=96000, seed=3: 22.1 us +- 1.2 us -> 19.7 us +- 0.1 us: 1.12x faster
- needle=8, haystack=8000, seed=2: 2.17 us +- 0.02 us -> 1.93 us +- 0.02 us: 1.12x faster
- needle=16, haystack=2000, seed=2: 456 ns +- 4 ns -> 406 ns +- 7 ns: 1.12x faster
- needle=384, haystack=6000, seed=2: 1.92 us +- 0.02 us -> 1.71 us +- 0.05 us: 1.12x faster
- needle=6, haystack=750, seed=2: 297 ns +- 11 ns -> 265 ns +- 5 ns: 1.12x faster
- needle=6, haystack=750, seed=3: 343 ns +- 7 ns -> 306 ns +- 4 ns: 1.12x faster
- needle=8, haystack=16000, seed=2: 11.2 us +- 0.3 us -> 9.99 us +- 0.14 us: 1.12x faster
- needle=8, haystack=1000, seed=2: 351 ns +- 8 ns -> 314 ns +- 3 ns: 1.12x faster
- needle=6, haystack=2000, seed=1: 681 ns +- 8 ns -> 608 ns +- 10 ns: 1.12x faster
- needle=4, haystack=1000, seed=2: 482 ns +- 7 ns -> 430 ns +- 5 ns: 1.12x faster
- needle=4, haystack=32000, seed=1: 31.0 us +- 0.6 us -> 27.7 us +- 0.3 us: 1.12x faster
- needle=256, haystack=16000, seed=1: 3.24 us +- 0.04 us -> 2.89 us +- 0.03 us: 1.12x faster
- needle=4, haystack=1500, seed=1: 643 ns +- 10 ns -> 574 ns +- 6 ns: 1.12x faster
- needle=4, haystack=4000, seed=3: 1.71 us +- 0.03 us -> 1.53 us +- 0.03 us: 1.12x faster
- needle=4, haystack=8000, seed=1: 2.97 us +- 0.08 us -> 2.65 us +- 0.05 us: 1.12x faster
- needle=6, haystack=750, seed=1: 364 ns +- 9 ns -> 325 ns +- 9 ns: 1.12x faster
- needle=24, haystack=2000, seed=3: 395 ns +- 4 ns -> 354 ns +- 7 ns: 1.12x faster
- needle=16, haystack=6000, seed=2: 948 ns +- 12 ns -> 849 ns +- 11 ns: 1.12x faster
- needle=12, haystack=8000, seed=3: 1.82 us +- 0.02 us -> 1.63 us +- 0.02 us: 1.12x faster
- needle=8, haystack=3000, seed=1: 845 ns +- 9 ns -> 757 ns +- 12 ns: 1.12x faster
- needle=16, haystack=8000, seed=1: 1.48 us +- 0.02 us -> 1.33 us +- 0.02 us: 1.12x faster
- needle=16, haystack=16000, seed=2: 2.37 us +- 0.02 us -> 2.12 us +- 0.03 us: 1.12x faster
- needle=3, haystack=48000, seed=1: 25.6 us +- 0.5 us -> 23.0 us +- 0.2 us: 1.12x faster
- needle=24, haystack=16000, seed=2: 2.14 us +- 0.03 us -> 1.92 us +- 0.02 us: 1.11x faster
- needle=16, haystack=4000, seed=3: 659 ns +- 8 ns -> 592 ns +- 10 ns: 1.11x faster
- needle=24, haystack=24000, seed=2: 3.77 us +- 0.05 us -> 3.39 us +- 0.05 us: 1.11x faster
- needle=192, haystack=2000, seed=3: 1.03 us +- 0.01 us -> 925 ns +- 8 ns: 1.11x faster
- needle=16, haystack=3000, seed=1: 801 ns +- 15 ns -> 720 ns +- 11 ns: 1.11x faster
- needle=12, haystack=3000, seed=1: 660 ns +- 10 ns -> 593 ns +- 6 ns: 1.11x faster
- needle=6, haystack=2000, seed=2: 735 ns +- 10 ns -> 660 ns +- 21 ns: 1.11x faster
- needle=12, haystack=12000, seed=2: 3.29 us +- 0.04 us -> 2.95 us +- 0.03 us: 1.11x faster
- needle=8, haystack=6000, seed=3: 1.49 us +- 0.03 us -> 1.34 us +- 0.03 us: 1.11x faster
- needle=16, haystack=1000, seed=3: 313 ns +- 7 ns -> 282 ns +- 3 ns: 1.11x faster
- needle=384, haystack=8000, seed=1: 2.22 us +- 0.02 us -> 2.00 us +- 0.02 us: 1.11x faster
- needle=12, haystack=1500, seed=3: 386 ns +- 5 ns -> 347 ns +- 5 ns: 1.11x faster
- needle=16, haystack=1500, seed=3: 411 ns +- 12 ns -> 369 ns +- 5 ns: 1.11x faster
- needle=24, haystack=4000, seed=3: 623 ns +- 18 ns -> 561 ns +- 10 ns: 1.11x faster
- needle=6, haystack=1500, seed=1: 478 ns +- 11 ns -> 430 ns +- 4 ns: 1.11x faster
- needle=3, haystack=96000, seed=3: 135 us +- 4 us -> 121 us +- 1 us: 1.11x faster
- needle=24, haystack=2000, seed=1: 407 ns +- 5 ns -> 366 ns +- 8 ns: 1.11x faster
- needle=24, haystack=8000, seed=2: 1.16 us +- 0.03 us -> 1.04 us +- 0.02 us: 1.11x faster
- needle=384, haystack=96000, seed=2: 14.9 us +- 0.2 us -> 13.5 us +- 0.3 us: 1.11x faster
- needle=12, haystack=4000, seed=3: 782 ns +- 9 ns -> 705 ns +- 12 ns: 1.11x faster
- needle=6, haystack=6000, seed=2: 1.68 us +- 0.02 us -> 1.51 us +- 0.02 us: 1.11x faster
- needle=16, haystack=24000, seed=2: 4.83 us +- 0.06 us -> 4.35 us +- 0.04 us: 1.11x faster
- needle=256, haystack=64000, seed=1: 11.1 us +- 0.1 us -> 9.99 us +- 0.13 us: 1.11x faster
- needle=32, haystack=4000, seed=1: 783 ns +- 27 ns -> 706 ns +- 9 ns: 1.11x faster
- needle=16, haystack=6000, seed=3: 1.02 us +- 0.01 us -> 921 ns +- 11 ns: 1.11x faster
- needle=16, haystack=16000, seed=3: 2.71 us +- 0.04 us -> 2.45 us +- 0.03 us: 1.11x faster
- needle=4, haystack=750, seed=2: 368 ns +- 8 ns -> 332 ns +- 8 ns: 1.11x faster
- needle=384, haystack=4000, seed=2: 1.59 us +- 0.02 us -> 1.43 us +- 0.02 us: 1.11x faster
- needle=16, haystack=2000, seed=1: 513 ns +- 16 ns -> 464 ns +- 6 ns: 1.11x faster
- needle=8, haystack=1500, seed=2: 490 ns +- 11 ns -> 443 ns +- 6 ns: 1.11x faster
- needle=12, haystack=16000, seed=2: 5.01 us +- 0.06 us -> 4.54 us +- 0.06 us: 1.11x faster
- needle=192, haystack=12000, seed=2: 1.85 us +- 0.02 us -> 1.67 us +- 0.04 us: 1.11x faster
- needle=3, haystack=64000, seed=3: 54.2 us +- 1.7 us -> 49.1 us +- 0.6 us: 1.11x faster
- needle=6, haystack=1000, seed=2: 399 ns +- 6 ns -> 361 ns +- 4 ns: 1.10x faster
- needle=12, haystack=1000, seed=1: 280 ns +- 5 ns -> 254 ns +- 4 ns: 1.10x faster
- needle=8, haystack=500, seed=1: 229 ns +- 6 ns -> 207 ns +- 4 ns: 1.10x faster
- needle=3, haystack=32000, seed=1: 57.1 us +- 3.3 us -> 51.7 us +- 0.5 us: 1.10x faster
- needle=6, haystack=1000, seed=1: 389 ns +- 6 ns -> 353 ns +- 4 ns: 1.10x faster
- needle=6, haystack=96000, seed=1: 69.5 us +- 1.4 us -> 63.0 us +- 0.6 us: 1.10x faster
- needle=256, haystack=96000, seed=2: 11.7 us +- 0.1 us -> 10.6 us +- 0.1 us: 1.10x faster
- needle=8, haystack=750, seed=2: 274 ns +- 4 ns -> 249 ns +- 2 ns: 1.10x faster
- needle=12, haystack=750, seed=3: 284 ns +- 7 ns -> 258 ns +- 6 ns: 1.10x faster
- needle=384, haystack=64000, seed=3: 10.1 us +- 0.1 us -> 9.15 us +- 0.09 us: 1.10x faster
- needle=24, haystack=12000, seed=3: 1.76 us +- 0.02 us -> 1.60 us +- 0.02 us: 1.10x faster
- needle=256, haystack=3000, seed=1: 1.26 us +- 0.01 us -> 1.15 us +- 0.02 us: 1.10x faster
- needle=4, haystack=32000, seed=2: 52.2 us +- 0.9 us -> 47.4 us +- 0.6 us: 1.10x faster
- needle=12, haystack=1000, seed=3: 288 ns +- 7 ns -> 262 ns +- 4 ns: 1.10x faster
- needle=16, haystack=6000, seed=1: 1.09 us +- 0.02 us -> 992 ns +- 22 ns: 1.10x faster
- needle=4, haystack=500, seed=3: 277 ns +- 3 ns -> 252 ns +- 2 ns: 1.10x faster
- needle=24, haystack=1500, seed=1: 315 ns +- 7 ns -> 286 ns +- 2 ns: 1.10x faster
- needle=12, haystack=500, seed=3: 217 ns +- 10 ns -> 198 ns +- 4 ns: 1.10x faster
- needle=12, haystack=750, seed=2: 265 ns +- 6 ns -> 242 ns +- 2 ns: 1.10x faster
- needle=12, haystack=1500, seed=2: 380 ns +- 12 ns -> 347 ns +- 8 ns: 1.10x faster
- needle=16, haystack=3000, seed=3: 539 ns +- 6 ns -> 492 ns +- 9 ns: 1.10x faster
- needle=3, haystack=500, seed=1: 354 ns +- 4 ns -> 322 ns +- 8 ns: 1.10x faster
- needle=3, haystack=32000, seed=2: 61.0 us +- 2.1 us -> 55.6 us +- 0.6 us: 1.10x faster
- needle=12, haystack=2000, seed=3: 511 ns +- 9 ns -> 466 ns +- 6 ns: 1.10x faster
- needle=4, haystack=24000, seed=2: 8.87 us +- 0.22 us -> 8.10 us +- 0.09 us: 1.10x faster
- needle=4, haystack=48000, seed=3: 56.7 us +- 1.3 us -> 51.8 us +- 0.6 us: 1.10x faster
- needle=3, haystack=96000, seed=2: 89.4 us +- 6.0 us -> 81.7 us +- 0.7 us: 1.09x faster
- needle=24, haystack=6000, seed=2: 908 ns +- 16 ns -> 829 ns +- 11 ns: 1.09x faster
- needle=12, haystack=500, seed=1: 200 ns +- 4 ns -> 183 ns +- 2 ns: 1.09x faster
- needle=12, haystack=3000, seed=2: 696 ns +- 9 ns -> 636 ns +- 9 ns: 1.09x faster
- needle=24, haystack=6000, seed=3: 1.04 us +- 0.02 us -> 954 ns +- 13 ns: 1.09x faster
- needle=4, haystack=2000, seed=3: 692 ns +- 15 ns -> 632 ns +- 9 ns: 1.09x faster
- needle=12, haystack=16000, seed=3: 6.17 us +- 0.11 us -> 5.64 us +- 0.08 us: 1.09x faster
- needle=6, haystack=3000, seed=3: 724 ns +- 28 ns -> 663 ns +- 10 ns: 1.09x faster
- needle=48, haystack=24000, seed=3: 3.62 us +- 0.05 us -> 3.32 us +- 0.04 us: 1.09x faster
- needle=12, haystack=12000, seed=3: 3.45 us +- 0.07 us -> 3.16 us +- 0.07 us: 1.09x faster
- needle=64, haystack=8000, seed=1: 1.65 us +- 0.03 us -> 1.51 us +- 0.02 us: 1.09x faster
- needle=192, haystack=4000, seed=2: 1.18 us +- 0.01 us -> 1.08 us +- 0.01 us: 1.09x faster
- needle=8, haystack=750, seed=3: 310 ns +- 8 ns -> 284 ns +- 5 ns: 1.09x faster
- needle=32, haystack=24000, seed=3: 6.42 us +- 0.11 us -> 5.88 us +- 0.07 us: 1.09x faster
- needle=2, haystack=64000, seed=3: 78.9 us +- 0.7 us -> 72.3 us +- 0.6 us: 1.09x faster
- needle=24, haystack=3000, seed=1: 630 ns +- 7 ns -> 577 ns +- 5 ns: 1.09x faster
- needle=192, haystack=16000, seed=1: 2.46 us +- 0.03 us -> 2.26 us +- 0.02 us: 1.09x faster
- needle=8, haystack=4000, seed=1: 1.26 us +- 0.03 us -> 1.15 us +- 0.02 us: 1.09x faster
- needle=96, haystack=24000, seed=1: 2.87 us +- 0.28 us -> 2.63 us +- 0.05 us: 1.09x faster
- needle=32, haystack=8000, seed=3: 1.03 us +- 0.01 us -> 941 ns +- 71 ns: 1.09x faster
- needle=8, haystack=12000, seed=2: 2.44 us +- 0.05 us -> 2.24 us +- 0.02 us: 1.09x faster
- needle=24, haystack=24000, seed=3: 4.56 us +- 0.06 us -> 4.19 us +- 0.04 us: 1.09x faster
- needle=2, haystack=96000, seed=3: 137 us +- 1 us -> 125 us +- 1 us: 1.09x faster
- needle=12, haystack=500, seed=2: 202 ns +- 3 ns -> 186 ns +- 3 ns: 1.09x faster
- needle=4, haystack=16000, seed=2: 9.75 us +- 0.09 us -> 8.96 us +- 0.08 us: 1.09x faster
- needle=8, haystack=8000, seed=3: 1.60 us +- 0.03 us -> 1.47 us +- 0.02 us: 1.09x faster
- needle=64, haystack=24000, seed=3: 2.13 us +- 0.03 us -> 1.96 us +- 0.03 us: 1.09x faster
- needle=32, haystack=16000, seed=3: 2.32 us +- 0.03 us -> 2.13 us +- 0.03 us: 1.09x faster
- needle=4, haystack=4000, seed=1: 1.30 us +- 0.05 us -> 1.19 us +- 0.01 us: 1.09x faster
- needle=2, haystack=64000, seed=2: 116 us +- 1 us -> 106 us +- 1 us: 1.09x faster
- needle=48, haystack=8000, seed=1: 1.60 us +- 0.02 us -> 1.48 us +- 0.02 us: 1.09x faster
- needle=3, haystack=24000, seed=2: 10.8 us +- 0.4 us -> 9.99 us +- 0.07 us: 1.09x faster
- needle=48, haystack=4000, seed=2: 766 ns +- 9 ns -> 706 ns +- 10 ns: 1.09x faster
- needle=2, haystack=96000, seed=2: 121 us +- 1 us -> 111 us +- 1 us: 1.09x faster
- needle=24, haystack=12000, seed=1: 1.79 us +- 0.02 us -> 1.65 us +- 0.02 us: 1.08x faster
- needle=8, haystack=750, seed=1: 245 ns +- 6 ns -> 226 ns +- 3 ns: 1.08x faster
- needle=384, haystack=32000, seed=1: 5.43 us +- 0.06 us -> 5.01 us +- 0.08 us: 1.08x faster
- needle=64, haystack=4000, seed=1: 673 ns +- 10 ns -> 621 ns +- 9 ns: 1.08x faster
- needle=6, haystack=500, seed=1: 240 ns +- 2 ns -> 221 ns +- 3 ns: 1.08x faster
- needle=384, haystack=2000, seed=3: 2.22 us +- 0.03 us -> 2.05 us +- 0.03 us: 1.08x faster
- needle=16, haystack=8000, seed=2: 1.55 us +- 0.03 us -> 1.43 us +- 0.02 us: 1.08x faster
- needle=6, haystack=500, seed=2: 245 ns +- 3 ns -> 226 ns +- 4 ns: 1.08x faster
- needle=12, haystack=750, seed=1: 232 ns +- 8 ns -> 214 ns +- 2 ns: 1.08x faster
- needle=4, haystack=750, seed=1: 352 ns +- 8 ns -> 325 ns +- 3 ns: 1.08x faster
- needle=4, haystack=2000, seed=2: 704 ns +- 14 ns -> 651 ns +- 25 ns: 1.08x faster
- needle=4, haystack=48000, seed=1: 26.8 us +- 0.4 us -> 24.8 us +- 0.3 us: 1.08x faster
- needle=16, haystack=2000, seed=3: 434 ns +- 5 ns -> 401 ns +- 12 ns: 1.08x faster
- needle=384, haystack=1500, seed=2: 1.68 us +- 0.02 us -> 1.56 us +- 0.02 us: 1.08x faster
- needle=4, haystack=64000, seed=1: 116 us +- 1 us -> 107 us +- 1 us: 1.08x faster
- needle=48, haystack=8000, seed=2: 1.08 us +- 0.02 us -> 995 ns +- 12 ns: 1.08x faster
- needle=16, haystack=1500, seed=1: 311 ns +- 6 ns -> 288 ns +- 4 ns: 1.08x faster
- needle=48, haystack=32000, seed=2: 6.62 us +- 0.09 us -> 6.13 us +- 0.07 us: 1.08x faster
- needle=3, haystack=24000, seed=3: 29.2 us +- 0.6 us -> 27.0 us +- 0.4 us: 1.08x faster
- needle=3, haystack=48000, seed=2: 21.9 us +- 0.3 us -> 20.3 us +- 0.2 us: 1.08x faster
- needle=384, haystack=3000, seed=1: 1.35 us +- 0.02 us -> 1.25 us +- 0.01 us: 1.08x faster
- needle=24, haystack=1000, seed=1: 247 ns +- 2 ns -> 229 ns +- 3 ns: 1.08x faster
- needle=48, haystack=3000, seed=1: 483 ns +- 6 ns -> 448 ns +- 4 ns: 1.08x faster
- needle=128, haystack=96000, seed=3: 15.2 us +- 0.2 us -> 14.1 us +- 0.5 us: 1.08x faster
- needle=8, haystack=8000, seed=1: 2.52 us +- 0.05 us -> 2.34 us +- 0.05 us: 1.08x faster
- needle=3, haystack=64000, seed=2: 38.1 us +- 1.2 us -> 35.3 us +- 0.4 us: 1.08x faster
- needle=4, haystack=12000, seed=1: 11.2 us +- 0.2 us -> 10.4 us +- 0.2 us: 1.08x faster
- needle=384, haystack=3000, seed=3: 1.37 us +- 0.02 us -> 1.27 us +- 0.02 us: 1.08x faster
- needle=128, haystack=96000, seed=1: 13.4 us +- 0.1 us -> 12.4 us +- 0.1 us: 1.08x faster
- needle=16, haystack=24000, seed=1: 8.60 us +- 0.09 us -> 7.98 us +- 0.09 us: 1.08x faster
- needle=192, haystack=3000, seed=2: 1.09 us +- 0.01 us -> 1.01 us +- 0.01 us: 1.08x faster
- needle=48, haystack=2000, seed=1: 478 ns +- 6 ns -> 444 ns +- 5 ns: 1.08x faster
- needle=32, haystack=48000, seed=1: 10.9 us +- 0.1 us -> 10.2 us +- 0.1 us: 1.08x faster
- needle=4, haystack=6000, seed=1: 1.89 us +- 0.04 us -> 1.76 us +- 0.03 us: 1.08x faster
- needle=16, haystack=1000, seed=1: 296 ns +- 5 ns -> 275 ns +- 2 ns: 1.08x faster
- needle=8, haystack=1000, seed=3: 359 ns +- 3 ns -> 334 ns +- 4 ns: 1.08x faster
- needle=8, haystack=500, seed=2: 219 ns +- 4 ns -> 204 ns +- 5 ns: 1.08x faster
- needle=24, haystack=500, seed=2: 178 ns +- 5 ns -> 165 ns +- 2 ns: 1.08x faster
- needle=8, haystack=500, seed=3: 219 ns +- 5 ns -> 203 ns +- 5 ns: 1.08x faster
- needle=6, haystack=500, seed=3: 228 ns +- 2 ns -> 212 ns +- 2 ns: 1.08x faster
- needle=96, haystack=8000, seed=3: 963 ns +- 8 ns -> 896 ns +- 18 ns: 1.08x faster
- needle=3, haystack=2000, seed=2: 892 ns +- 24 ns -> 831 ns +- 7 ns: 1.07x faster
- needle=4, haystack=3000, seed=2: 976 ns +- 18 ns -> 909 ns +- 12 ns: 1.07x faster
- needle=48, haystack=6000, seed=2: 934 ns +- 9 ns -> 870 ns +- 7 ns: 1.07x faster
- needle=256, haystack=750, seed=3: 786 ns +- 10 ns -> 733 ns +- 9 ns: 1.07x faster
- needle=256, haystack=96000, seed=3: 13.7 us +- 0.2 us -> 12.8 us +- 0.1 us: 1.07x faster
- needle=64, haystack=4000, seed=2: 825 ns +- 11 ns -> 769 ns +- 8 ns: 1.07x faster
- needle=6, haystack=24000, seed=2: 16.7 us +- 0.2 us -> 15.6 us +- 0.2 us: 1.07x faster
- needle=24, haystack=1500, seed=2: 375 ns +- 4 ns -> 350 ns +- 5 ns: 1.07x faster
- needle=24, haystack=4000, seed=2: 703 ns +- 7 ns -> 656 ns +- 12 ns: 1.07x faster
- needle=3, haystack=2000, seed=1: 805 ns +- 39 ns -> 751 ns +- 9 ns: 1.07x faster
- needle=4, haystack=3000, seed=3: 937 ns +- 19 ns -> 874 ns +- 13 ns: 1.07x faster
- needle=24, haystack=2000, seed=2: 432 ns +- 9 ns -> 403 ns +- 7 ns: 1.07x faster
- needle=16, haystack=1000, seed=2: 308 ns +- 3 ns -> 288 ns +- 6 ns: 1.07x faster
- needle=128, haystack=1500, seed=2: 687 ns +- 11 ns -> 641 ns +- 17 ns: 1.07x faster
- needle=16, haystack=500, seed=1: 212 ns +- 6 ns -> 198 ns +- 2 ns: 1.07x faster
- needle=256, haystack=3000, seed=3: 1.23 us +- 0.01 us -> 1.15 us +- 0.01 us: 1.07x faster
- needle=48, haystack=64000, seed=3: 13.7 us +- 0.2 us -> 12.8 us +- 0.1 us: 1.07x faster
- needle=48, haystack=24000, seed=2: 6.08 us +- 0.09 us -> 5.67 us +- 0.08 us: 1.07x faster
- needle=64, haystack=16000, seed=2: 2.05 us +- 0.03 us -> 1.91 us +- 0.02 us: 1.07x faster
- needle=12, haystack=1500, seed=1: 421 ns +- 4 ns -> 393 ns +- 4 ns: 1.07x faster
- needle=128, haystack=96000, seed=2: 14.1 us +- 0.1 us -> 13.2 us +- 0.1 us: 1.07x faster
- needle=12, haystack=2000, seed=1: 414 ns +- 6 ns -> 387 ns +- 7 ns: 1.07x faster
- needle=256, haystack=24000, seed=1: 3.98 us +- 0.04 us -> 3.72 us +- 0.03 us: 1.07x faster
- needle=2, haystack=48000, seed=1: 79.9 us +- 1.2 us -> 74.7 us +- 3.6 us: 1.07x faster
- needle=64, haystack=1500, seed=1: 303 ns +- 4 ns -> 284 ns +- 3 ns: 1.07x faster
- needle=64, haystack=6000, seed=1: 591 ns +- 11 ns -> 552 ns +- 9 ns: 1.07x faster
- needle=96, haystack=2000, seed=1: 378 ns +- 5 ns -> 353 ns +- 7 ns: 1.07x faster
- needle=128, haystack=2000, seed=1: 599 ns +- 7 ns -> 560 ns +- 5 ns: 1.07x faster
- needle=24, haystack=1000, seed=3: 290 ns +- 5 ns -> 271 ns +- 4 ns: 1.07x faster
- needle=256, haystack=1500, seed=2: 1.27 us +- 0.01 us -> 1.19 us +- 0.01 us: 1.07x faster
- needle=96, haystack=2000, seed=2: 821 ns +- 8 ns -> 769 ns +- 11 ns: 1.07x faster
- needle=3, haystack=1500, seed=1: 764 ns +- 9 ns -> 715 ns +- 11 ns: 1.07x faster
- needle=4, haystack=3000, seed=1: 1.00 us +- 0.03 us -> 939 ns +- 12 ns: 1.07x faster
- needle=24, haystack=4000, seed=1: 696 ns +- 9 ns -> 652 ns +- 8 ns: 1.07x faster
- needle=32, haystack=1500, seed=3: 385 ns +- 6 ns -> 360 ns +- 6 ns: 1.07x faster
- needle=12, haystack=3000, seed=3: 831 ns +- 9 ns -> 778 ns +- 7 ns: 1.07x faster
- needle=2, haystack=48000, seed=3: 98.3 us +- 0.8 us -> 92.1 us +- 1.5 us: 1.07x faster
- needle=96, haystack=12000, seed=1: 2.26 us +- 0.02 us -> 2.12 us +- 0.02 us: 1.07x faster
- needle=96, haystack=12000, seed=3: 1.49 us +- 0.02 us -> 1.39 us +- 0.03 us: 1.07x faster
- needle=32, haystack=16000, seed=1: 2.01 us +- 0.02 us -> 1.89 us +- 0.03 us: 1.07x faster
- needle=3, haystack=64000, seed=1: 131 us +- 3 us -> 123 us +- 1 us: 1.07x faster
- needle=24, haystack=16000, seed=1: 2.24 us +- 0.03 us -> 2.10 us +- 0.02 us: 1.07x faster
- needle=128, haystack=750, seed=1: 481 ns +- 9 ns -> 451 ns +- 5 ns: 1.07x faster
- needle=384, haystack=1000, seed=1: 1.13 us +- 0.01 us -> 1.06 us +- 0.01 us: 1.07x faster
- needle=256, haystack=32000, seed=1: 5.76 us +- 0.05 us -> 5.40 us +- 0.07 us: 1.07x faster
- needle=16, haystack=16000, seed=1: 4.16 us +- 0.04 us -> 3.91 us +- 0.05 us: 1.07x faster
- needle=2, haystack=16000, seed=1: 10.7 us +- 0.2 us -> 10.1 us +- 0.2 us: 1.07x faster
- needle=8, haystack=24000, seed=2: 12.5 us +- 0.1 us -> 11.7 us +- 0.2 us: 1.07x faster
- needle=8, haystack=48000, seed=1: 30.7 us +- 0.2 us -> 28.8 us +- 0.3 us: 1.07x faster
- needle=64, haystack=3000, seed=3: 560 ns +- 7 ns -> 526 ns +- 7 ns: 1.07x faster
- needle=192, haystack=4000, seed=1: 1.20 us +- 0.01 us -> 1.13 us +- 0.02 us: 1.07x faster
- needle=3, haystack=8000, seed=3: 3.34 us +- 0.04 us -> 3.14 us +- 0.07 us: 1.07x faster
- needle=24, haystack=750, seed=2: 221 ns +- 4 ns -> 207 ns +- 2 ns: 1.06x faster
- needle=64, haystack=750, seed=2: 229 ns +- 5 ns -> 215 ns +- 2 ns: 1.06x faster
- needle=32, haystack=12000, seed=3: 1.82 us +- 0.02 us -> 1.71 us +- 0.02 us: 1.06x faster
- needle=16, haystack=500, seed=2: 191 ns +- 6 ns -> 179 ns +- 2 ns: 1.06x faster
- needle=64, haystack=12000, seed=3: 2.14 us +- 0.03 us -> 2.01 us +- 0.03 us: 1.06x faster
- needle=96, haystack=4000, seed=2: 1.25 us +- 0.02 us -> 1.18 us +- 0.01 us: 1.06x faster
- needle=32, haystack=32000, seed=3: 7.73 us +- 0.06 us -> 7.26 us +- 0.07 us: 1.06x faster
- needle=192, haystack=500, seed=3: 452 ns +- 4 ns -> 425 ns +- 7 ns: 1.06x faster
- needle=32, haystack=2000, seed=3: 378 ns +- 7 ns -> 356 ns +- 7 ns: 1.06x faster
- needle=96, haystack=4000, seed=1: 1.61 us +- 0.01 us -> 1.52 us +- 0.02 us: 1.06x faster
- needle=32, haystack=3000, seed=3: 498 ns +- 5 ns -> 469 ns +- 4 ns: 1.06x faster
- needle=12, haystack=1000, seed=2: 251 ns +- 7 ns -> 237 ns +- 4 ns: 1.06x faster
- needle=32, haystack=4000, seed=2: 646 ns +- 13 ns -> 608 ns +- 7 ns: 1.06x faster
- needle=32, haystack=750, seed=1: 223 ns +- 3 ns -> 210 ns +- 2 ns: 1.06x faster
- needle=4, haystack=1000, seed=3: 402 ns +- 10 ns -> 379 ns +- 5 ns: 1.06x faster
- needle=64, haystack=6000, seed=2: 980 ns +- 10 ns -> 924 ns +- 12 ns: 1.06x faster
- needle=96, haystack=16000, seed=2: 2.26 us +- 0.03 us -> 2.13 us +- 0.02 us: 1.06x faster
- needle=256, haystack=2000, seed=3: 1.42 us +- 0.02 us -> 1.34 us +- 0.02 us: 1.06x faster
- needle=48, haystack=1500, seed=1: 379 ns +- 6 ns -> 357 ns +- 4 ns: 1.06x faster
- needle=12, haystack=16000, seed=1: 4.21 us +- 0.07 us -> 3.97 us +- 0.06 us: 1.06x faster
- needle=3, haystack=16000, seed=2: 20.9 us +- 0.1 us -> 19.7 us +- 0.2 us: 1.06x faster
- needle=2, haystack=24000, seed=2: 33.1 us +- 0.4 us -> 31.2 us +- 0.4 us: 1.06x faster
- needle=384, haystack=2000, seed=2: 2.61 us +- 0.03 us -> 2.46 us +- 0.03 us: 1.06x faster
- needle=32, haystack=500, seed=1: 176 ns +- 2 ns -> 166 ns +- 3 ns: 1.06x faster
- needle=2, haystack=16000, seed=3: 17.7 us +- 0.1 us -> 16.7 us +- 0.2 us: 1.06x faster
- needle=16, haystack=750, seed=3: 235 ns +- 2 ns -> 222 ns +- 2 ns: 1.06x faster
- needle=48, haystack=1500, seed=2: 302 ns +- 3 ns -> 285 ns +- 3 ns: 1.06x faster
- needle=16, haystack=3000, seed=2: 606 ns +- 4 ns -> 572 ns +- 8 ns: 1.06x faster
- needle=128, haystack=3000, seed=1: 862 ns +- 8 ns -> 814 ns +- 10 ns: 1.06x faster
- needle=96, haystack=12000, seed=2: 1.41 us +- 0.01 us -> 1.33 us +- 0.04 us: 1.06x faster
- needle=3, haystack=1500, seed=3: 809 ns +- 30 ns -> 765 ns +- 8 ns: 1.06x faster
- needle=3, haystack=32000, seed=3: 13.3 us +- 0.3 us -> 12.6 us +- 0.2 us: 1.06x faster
- needle=64, haystack=2000, seed=2: 400 ns +- 10 ns -> 378 ns +- 7 ns: 1.06x faster
- needle=48, haystack=1000, seed=2: 298 ns +- 5 ns -> 282 ns +- 4 ns: 1.06x faster
- needle=48, haystack=6000, seed=1: 1.08 us +- 0.01 us -> 1.03 us +- 0.01 us: 1.06x faster
- needle=48, haystack=750, seed=2: 253 ns +- 5 ns -> 240 ns +- 2 ns: 1.06x faster
- needle=3, haystack=500, seed=3: 339 ns +- 5 ns -> 321 ns +- 6 ns: 1.06x faster
- needle=16, haystack=750, seed=2: 211 ns +- 3 ns -> 200 ns +- 4 ns: 1.06x faster
- needle=6, haystack=24000, seed=1: 24.2 us +- 0.7 us -> 22.9 us +- 0.2 us: 1.06x faster
- needle=6, haystack=16000, seed=1: 10.1 us +- 0.2 us -> 9.54 us +- 0.13 us: 1.06x faster
- needle=2, haystack=32000, seed=2: 26.5 us +- 0.5 us -> 25.1 us +- 0.3 us: 1.05x faster
- needle=4, haystack=1500, seed=2: 546 ns +- 6 ns -> 518 ns +- 13 ns: 1.05x faster
- needle=64, haystack=500, seed=3: 197 ns +- 4 ns -> 187 ns +- 2 ns: 1.05x faster
- needle=128, haystack=1000, seed=1: 305 ns +- 8 ns -> 289 ns +- 6 ns: 1.05x faster
- needle=3, haystack=750, seed=2: 442 ns +- 9 ns -> 420 ns +- 9 ns: 1.05x faster
- needle=256, haystack=1500, seed=1: 856 ns +- 10 ns -> 812 ns +- 8 ns: 1.05x faster
- needle=96, haystack=500, seed=3: 378 ns +- 7 ns -> 359 ns +- 10 ns: 1.05x faster
- needle=256, haystack=2000, seed=2: 1.17 us +- 0.01 us -> 1.11 us +- 0.01 us: 1.05x faster
- needle=32, haystack=500, seed=2: 189 ns +- 6 ns -> 179 ns +- 3 ns: 1.05x faster
- needle=96, haystack=1500, seed=1: 634 ns +- 7 ns -> 602 ns +- 5 ns: 1.05x faster
- needle=3, haystack=96000, seed=1: 46.7 us +- 1.1 us -> 44.3 us +- 0.5 us: 1.05x faster
- needle=128, haystack=64000, seed=3: 9.34 us +- 0.08 us -> 8.87 us +- 0.05 us: 1.05x faster
- needle=6, haystack=24000, seed=3: 18.8 us +- 0.3 us -> 17.9 us +- 0.2 us: 1.05x faster
- needle=32, haystack=3000, seed=1: 582 ns +- 5 ns -> 552 ns +- 5 ns: 1.05x faster
- needle=32, haystack=2000, seed=1: 359 ns +- 4 ns -> 341 ns +- 11 ns: 1.05x faster
- needle=4, haystack=64000, seed=3: 92.1 us +- 1.4 us -> 87.6 us +- 0.8 us: 1.05x faster
- needle=96, haystack=2000, seed=3: 436 ns +- 8 ns -> 415 ns +- 8 ns: 1.05x faster
- needle=256, haystack=8000, seed=2: 1.91 us +- 0.02 us -> 1.82 us +- 0.02 us: 1.05x faster
- needle=96, haystack=1500, seed=3: 382 ns +- 7 ns -> 363 ns +- 5 ns: 1.05x faster
- needle=128, haystack=750, seed=2: 350 ns +- 3 ns -> 332 ns +- 4 ns: 1.05x faster
- needle=48, haystack=16000, seed=1: 2.05 us +- 0.02 us -> 1.94 us +- 0.03 us: 1.05x faster
- needle=48, haystack=1500, seed=3: 273 ns +- 4 ns -> 260 ns +- 4 ns: 1.05x faster
- needle=192, haystack=1500, seed=1: 1.01 us +- 0.01 us -> 956 ns +- 9 ns: 1.05x faster
- needle=24, haystack=750, seed=3: 242 ns +- 5 ns -> 230 ns +- 5 ns: 1.05x faster
- needle=32, haystack=12000, seed=1: 2.19 us +- 0.02 us -> 2.08 us +- 0.02 us: 1.05x faster
- needle=32, haystack=6000, seed=2: 1.09 us +- 0.01 us -> 1.03 us +- 0.02 us: 1.05x faster
- needle=128, haystack=48000, seed=2: 6.63 us +- 0.07 us -> 6.30 us +- 0.04 us: 1.05x faster
- needle=48, haystack=2000, seed=3: 511 ns +- 9 ns -> 486 ns +- 5 ns: 1.05x faster
- needle=64, haystack=16000, seed=3: 2.04 us +- 0.03 us -> 1.94 us +- 0.02 us: 1.05x faster
- needle=2, haystack=3000, seed=2: 1.65 us +- 0.03 us -> 1.57 us +- 0.02 us: 1.05x faster
- needle=16, haystack=500, seed=3: 183 ns +- 2 ns -> 174 ns +- 6 ns: 1.05x faster
- needle=32, haystack=1000, seed=1: 234 ns +- 5 ns -> 223 ns +- 7 ns: 1.05x faster
- needle=128, haystack=48000, seed=3: 8.02 us +- 0.09 us -> 7.64 us +- 0.11 us: 1.05x faster
- needle=48, haystack=16000, seed=2: 3.92 us +- 0.06 us -> 3.73 us +- 0.02 us: 1.05x faster
- needle=32, haystack=6000, seed=1: 977 ns +- 26 ns -> 931 ns +- 10 ns: 1.05x faster
- needle=96, haystack=750, seed=2: 392 ns +- 7 ns -> 374 ns +- 7 ns: 1.05x faster
- needle=64, haystack=8000, seed=2: 990 ns +- 12 ns -> 943 ns +- 8 ns: 1.05x faster
- needle=32, haystack=24000, seed=1: 4.05 us +- 0.05 us -> 3.86 us +- 0.05 us: 1.05x faster
- needle=24, haystack=500, seed=3: 183 ns +- 2 ns -> 174 ns +- 3 ns: 1.05x faster
- needle=128, haystack=1000, seed=2: 350 ns +- 5 ns -> 334 ns +- 4 ns: 1.05x faster
- needle=96, haystack=4000, seed=3: 815 ns +- 13 ns -> 778 ns +- 11 ns: 1.05x faster
- needle=48, haystack=1000, seed=3: 260 ns +- 2 ns -> 248 ns +- 3 ns: 1.05x faster
- needle=64, haystack=16000, seed=1: 1.90 us +- 0.03 us -> 1.81 us +- 0.03 us: 1.05x faster
- needle=256, haystack=6000, seed=3: 1.61 us +- 0.01 us -> 1.53 us +- 0.02 us: 1.05x faster
- needle=96, haystack=1000, seed=2: 259 ns +- 3 ns -> 247 ns +- 4 ns: 1.05x faster
- needle=384, haystack=750, seed=1: 814 ns +- 26 ns -> 778 ns +- 8 ns: 1.05x faster
- needle=12, haystack=24000, seed=2: 17.4 us +- 0.2 us -> 16.7 us +- 0.2 us: 1.05x faster
- needle=12, haystack=32000, seed=3: 15.1 us +- 0.1 us -> 14.4 us +- 0.1 us: 1.05x faster
- needle=4, haystack=8000, seed=3: 2.63 us +- 0.07 us -> 2.52 us +- 0.04 us: 1.05x faster
- needle=384, haystack=12000, seed=1: 2.57 us +- 0.03 us -> 2.46 us +- 0.03 us: 1.05x faster
- needle=48, haystack=750, seed=1: 296 ns +- 5 ns -> 282 ns +- 5 ns: 1.05x faster
- needle=32, haystack=1500, seed=1: 278 ns +- 4 ns -> 266 ns +- 4 ns: 1.05x faster
- needle=2, haystack=1500, seed=2: 819 ns +- 13 ns -> 784 ns +- 8 ns: 1.04x faster
- needle=64, haystack=48000, seed=1: 8.19 us +- 0.07 us -> 7.84 us +- 0.06 us: 1.04x faster
- needle=24, haystack=1500, seed=3: 450 ns +- 8 ns -> 431 ns +- 4 ns: 1.04x faster
- needle=32, haystack=96000, seed=2: 25.5 us +- 0.4 us -> 24.4 us +- 0.3 us: 1.04x faster
- needle=48, haystack=6000, seed=3: 684 ns +- 11 ns -> 656 ns +- 7 ns: 1.04x faster
- needle=24, haystack=500, seed=1: 200 ns +- 4 ns -> 191 ns +- 2 ns: 1.04x faster
- needle=96, haystack=3000, seed=3: 763 ns +- 12 ns -> 732 ns +- 7 ns: 1.04x faster
- needle=32, haystack=4000, seed=3: 763 ns +- 12 ns -> 731 ns +- 14 ns: 1.04x faster
- needle=64, haystack=3000, seed=1: 458 ns +- 17 ns -> 439 ns +- 8 ns: 1.04x faster
- needle=32, haystack=3000, seed=2: 539 ns +- 7 ns -> 517 ns +- 6 ns: 1.04x faster
- needle=64, haystack=500, seed=1: 201 ns +- 5 ns -> 193 ns +- 2 ns: 1.04x faster
- needle=192, haystack=1000, seed=2: 508 ns +- 12 ns -> 487 ns +- 8 ns: 1.04x faster
- needle=64, haystack=1000, seed=1: 202 ns +- 2 ns -> 194 ns +- 2 ns: 1.04x faster
- needle=192, haystack=2000, seed=1: 808 ns +- 12 ns -> 776 ns +- 12 ns: 1.04x faster
- needle=4, haystack=96000, seed=1: 130 us +- 2 us -> 125 us +- 1 us: 1.04x faster
- needle=384, haystack=750, seed=3: 779 ns +- 16 ns -> 748 ns +- 15 ns: 1.04x faster
- needle=32, haystack=1000, seed=2: 235 ns +- 4 ns -> 225 ns +- 5 ns: 1.04x faster
- needle=64, haystack=1000, seed=2: 440 ns +- 9 ns -> 423 ns +- 10 ns: 1.04x faster
- needle=256, haystack=16000, seed=2: 3.01 us +- 0.04 us -> 2.89 us +- 0.03 us: 1.04x faster
- needle=192, haystack=750, seed=3: 410 ns +- 12 ns -> 395 ns +- 3 ns: 1.04x faster
- needle=192, haystack=1500, seed=3: 717 ns +- 7 ns -> 690 ns +- 6 ns: 1.04x faster
- needle=4, haystack=96000, seed=2: 144 us +- 2 us -> 138 us +- 1 us: 1.04x faster
- needle=48, haystack=750, seed=3: 281 ns +- 7 ns -> 270 ns +- 2 ns: 1.04x faster
- needle=384, haystack=500, seed=1: 473 ns +- 5 ns -> 455 ns +- 5 ns: 1.04x faster
- needle=48, haystack=3000, seed=2: 672 ns +- 11 ns -> 646 ns +- 9 ns: 1.04x faster
- needle=96, haystack=6000, seed=2: 1.06 us +- 0.01 us -> 1.02 us +- 0.04 us: 1.04x faster
- needle=24, haystack=750, seed=1: 239 ns +- 3 ns -> 230 ns +- 4 ns: 1.04x faster
- needle=64, haystack=2000, seed=3: 283 ns +- 3 ns -> 272 ns +- 6 ns: 1.04x faster
- needle=48, haystack=3000, seed=3: 623 ns +- 12 ns -> 599 ns +- 5 ns: 1.04x faster
- needle=32, haystack=8000, seed=2: 1.06 us +- 0.01 us -> 1.02 us +- 0.04 us: 1.04x faster
- needle=384, haystack=1500, seed=1: 473 ns +- 4 ns -> 456 ns +- 4 ns: 1.04x faster
- needle=32, haystack=750, seed=3: 192 ns +- 2 ns -> 185 ns +- 2 ns: 1.04x faster
- needle=192, haystack=6000, seed=1: 1.54 us +- 0.01 us -> 1.49 us +- 0.02 us: 1.04x faster
- needle=384, haystack=2000, seed=1: 607 ns +- 7 ns -> 585 ns +- 5 ns: 1.04x faster
- needle=64, haystack=4000, seed=3: 702 ns +- 6 ns -> 677 ns +- 7 ns: 1.04x faster
- needle=2, haystack=6000, seed=1: 3.21 us +- 0.05 us -> 3.10 us +- 0.09 us: 1.04x faster
- needle=6, haystack=16000, seed=2: 3.40 us +- 0.05 us -> 3.28 us +- 0.05 us: 1.04x faster
- needle=96, haystack=750, seed=3: 254 ns +- 5 ns -> 245 ns +- 5 ns: 1.04x faster
- needle=3, haystack=48000, seed=3: 21.6 us +- 0.2 us -> 20.8 us +- 0.2 us: 1.04x faster
- needle=32, haystack=8000, seed=1: 1.11 us +- 0.01 us -> 1.07 us +- 0.03 us: 1.04x faster
- needle=384, haystack=1500, seed=3: 1.51 us +- 0.01 us -> 1.46 us +- 0.01 us: 1.04x faster
- needle=64, haystack=1500, seed=3: 306 ns +- 7 ns -> 296 ns +- 8 ns: 1.04x faster
- needle=96, haystack=500, seed=1: 228 ns +- 4 ns -> 220 ns +- 5 ns: 1.04x faster
- needle=256, haystack=4000, seed=2: 1.28 us +- 0.01 us -> 1.23 us +- 0.01 us: 1.04x faster
- needle=192, haystack=750, seed=2: 584 ns +- 6 ns -> 564 ns +- 5 ns: 1.04x faster
- needle=2, haystack=64000, seed=1: 61.9 us +- 0.7 us -> 59.8 us +- 0.8 us: 1.04x faster
- needle=128, haystack=1500, seed=3: 374 ns +- 5 ns -> 361 ns +- 6 ns: 1.03x faster
- needle=256, haystack=12000, seed=1: 2.31 us +- 0.02 us -> 2.23 us +- 0.01 us: 1.03x faster
- needle=384, haystack=750, seed=2: 439 ns +- 8 ns -> 425 ns +- 4 ns: 1.03x faster
- needle=192, haystack=3000, seed=3: 943 ns +- 12 ns -> 913 ns +- 10 ns: 1.03x faster
- needle=32, haystack=500, seed=3: 181 ns +- 4 ns -> 175 ns +- 6 ns: 1.03x faster
- needle=256, haystack=12000, seed=2: 2.22 us +- 0.02 us -> 2.15 us +- 0.02 us: 1.03x faster
- needle=64, haystack=12000, seed=1: 2.02 us +- 0.03 us -> 1.95 us +- 0.03 us: 1.03x faster
- needle=32, haystack=750, seed=2: 200 ns +- 5 ns -> 194 ns +- 5 ns: 1.03x faster
- needle=48, haystack=16000, seed=3: 2.78 us +- 0.04 us -> 2.69 us +- 0.04 us: 1.03x faster
- needle=384, haystack=500, seed=2: 517 ns +- 7 ns -> 501 ns +- 8 ns: 1.03x faster
- needle=48, haystack=12000, seed=1: 1.82 us +- 0.03 us -> 1.76 us +- 0.02 us: 1.03x faster
- needle=8, haystack=2000, seed=2: 648 ns +- 9 ns -> 627 ns +- 14 ns: 1.03x faster
- needle=32, haystack=32000, seed=2: 4.94 us +- 0.08 us -> 4.78 us +- 0.06 us: 1.03x faster
- needle=256, haystack=750, seed=1: 638 ns +- 8 ns -> 618 ns +- 8 ns: 1.03x faster
- needle=2, haystack=1000, seed=3: 578 ns +- 6 ns -> 560 ns +- 7 ns: 1.03x faster
- needle=4, haystack=500, seed=1: 231 ns +- 4 ns -> 223 ns +- 3 ns: 1.03x faster
- needle=48, haystack=24000, seed=1: 4.08 us +- 0.06 us -> 3.95 us +- 0.04 us: 1.03x faster
- needle=384, haystack=1000, seed=3: 1.02 us +- 0.01 us -> 992 ns +- 11 ns: 1.03x faster
- needle=256, haystack=750, seed=2: 476 ns +- 5 ns -> 461 ns +- 9 ns: 1.03x faster
- needle=4, haystack=32000, seed=3: 38.1 us +- 0.8 us -> 36.9 us +- 0.3 us: 1.03x faster
- needle=192, haystack=750, seed=1: 435 ns +- 7 ns -> 422 ns +- 5 ns: 1.03x faster
- needle=48, haystack=500, seed=3: 203 ns +- 2 ns -> 197 ns +- 4 ns: 1.03x faster
- needle=64, haystack=750, seed=3: 246 ns +- 3 ns -> 239 ns +- 3 ns: 1.03x faster
- needle=128, haystack=500, seed=2: 243 ns +- 2 ns -> 235 ns +- 2 ns: 1.03x faster
- needle=192, haystack=8000, seed=1: 1.70 us +- 0.02 us -> 1.65 us +- 0.02 us: 1.03x faster
- needle=96, haystack=500, seed=2: 199 ns +- 5 ns -> 193 ns +- 5 ns: 1.03x faster
- needle=64, haystack=3000, seed=2: 347 ns +- 4 ns -> 337 ns +- 6 ns: 1.03x faster
- needle=48, haystack=1000, seed=1: 220 ns +- 3 ns -> 214 ns +- 5 ns: 1.03x faster
- needle=128, haystack=2000, seed=3: 533 ns +- 6 ns -> 518 ns +- 6 ns: 1.03x faster
- needle=96, haystack=3000, seed=2: 565 ns +- 6 ns -> 549 ns +- 10 ns: 1.03x faster
- needle=64, haystack=1000, seed=3: 274 ns +- 5 ns -> 266 ns +- 2 ns: 1.03x faster
- needle=12, haystack=24000, seed=3: 8.11 us +- 0.07 us -> 7.89 us +- 0.11 us: 1.03x faster
- needle=6, haystack=48000, seed=2: 32.4 us +- 0.4 us -> 31.5 us +- 0.3 us: 1.03x faster
- needle=64, haystack=24000, seed=2: 2.87 us +- 0.04 us -> 2.79 us +- 0.04 us: 1.03x faster
- needle=48, haystack=2000, seed=2: 442 ns +- 4 ns -> 430 ns +- 7 ns: 1.03x faster
- needle=384, haystack=500, seed=3: 430 ns +- 4 ns -> 418 ns +- 3 ns: 1.03x faster
- needle=192, haystack=500, seed=1: 304 ns +- 3 ns -> 295 ns +- 2 ns: 1.03x faster
- needle=2, haystack=2000, seed=3: 1.12 us +- 0.01 us -> 1.09 us +- 0.01 us: 1.03x faster
- needle=64, haystack=750, seed=1: 210 ns +- 2 ns -> 204 ns +- 4 ns: 1.03x faster
- needle=32, haystack=6000, seed=3: 1.12 us +- 0.01 us -> 1.09 us +- 0.01 us: 1.03x faster
- needle=192, haystack=500, seed=2: 302 ns +- 5 ns -> 294 ns +- 3 ns: 1.03x faster
- needle=8, haystack=24000, seed=3: 14.1 us +- 0.2 us -> 13.7 us +- 0.2 us: 1.03x faster
- needle=12, haystack=32000, seed=2: 11.8 us +- 0.2 us -> 11.5 us +- 0.1 us: 1.03x faster
- needle=256, haystack=1000, seed=1: 533 ns +- 5 ns -> 519 ns +- 6 ns: 1.03x faster
- needle=48, haystack=500, seed=2: 170 ns +- 5 ns -> 165 ns +- 3 ns: 1.03x faster
- needle=48, haystack=4000, seed=3: 665 ns +- 8 ns -> 648 ns +- 11 ns: 1.03x faster
- needle=384, haystack=4000, seed=1: 1.59 us +- 0.02 us -> 1.55 us +- 0.02 us: 1.03x faster
- needle=3, haystack=6000, seed=3: 2.21 us +- 0.03 us -> 2.16 us +- 0.04 us: 1.03x faster
- needle=96, haystack=6000, seed=1: 1.06 us +- 0.01 us -> 1.03 us +- 0.02 us: 1.03x faster
- needle=256, haystack=500, seed=2: 320 ns +- 7 ns -> 312 ns +- 10 ns: 1.03x faster
- needle=64, haystack=12000, seed=2: 1.32 us +- 0.02 us -> 1.29 us +- 0.02 us: 1.03x faster
- needle=128, haystack=500, seed=3: 313 ns +- 3 ns -> 305 ns +- 6 ns: 1.02x faster
- needle=48, haystack=8000, seed=3: 1.24 us +- 0.01 us -> 1.21 us +- 0.01 us: 1.02x faster
- needle=256, haystack=1500, seed=3: 544 ns +- 7 ns -> 531 ns +- 5 ns: 1.02x faster
- needle=64, haystack=6000, seed=3: 940 ns +- 10 ns -> 918 ns +- 12 ns: 1.02x faster
- needle=64, haystack=1500, seed=2: 324 ns +- 4 ns -> 316 ns +- 6 ns: 1.02x faster
- needle=384, haystack=64000, seed=2: 10.4 us +- 0.1 us -> 10.2 us +- 0.1 us: 1.02x faster
- needle=256, haystack=1000, seed=2: 495 ns +- 4 ns -> 484 ns +- 7 ns: 1.02x faster
- needle=32, haystack=1500, seed=2: 348 ns +- 5 ns -> 341 ns +- 9 ns: 1.02x faster
- needle=192, haystack=1500, seed=2: 394 ns +- 6 ns -> 386 ns +- 8 ns: 1.02x faster
- needle=384, haystack=1000, seed=2: 414 ns +- 6 ns -> 405 ns +- 9 ns: 1.02x faster
- needle=384, haystack=12000, seed=3: 2.50 us +- 0.03 us -> 2.45 us +- 0.03 us: 1.02x faster
- needle=96, haystack=750, seed=1: 247 ns +- 4 ns -> 241 ns +- 6 ns: 1.02x faster
- needle=256, haystack=500, seed=1: 292 ns +- 4 ns -> 286 ns +- 3 ns: 1.02x faster
- needle=64, haystack=500, seed=2: 164 ns +- 4 ns -> 161 ns +- 5 ns: 1.02x faster
- needle=3, haystack=1000, seed=2: 431 ns +- 4 ns -> 422 ns +- 5 ns: 1.02x faster
- needle=256, haystack=1000, seed=3: 868 ns +- 8 ns -> 850 ns +- 9 ns: 1.02x faster
- needle=16, haystack=32000, seed=3: 12.1 us +- 0.2 us -> 11.9 us +- 0.2 us: 1.02x faster
- needle=128, haystack=1000, seed=3: 503 ns +- 4 ns -> 493 ns +- 6 ns: 1.02x faster
- needle=96, haystack=1000, seed=1: 213 ns +- 2 ns -> 209 ns +- 2 ns: 1.02x faster
- needle=4, haystack=48000, seed=2: 59.9 us +- 0.6 us -> 58.7 us +- 0.5 us: 1.02x faster
- needle=64, haystack=2000, seed=1: 640 ns +- 11 ns -> 628 ns +- 15 ns: 1.02x faster
- needle=128, haystack=2000, seed=2: 444 ns +- 7 ns -> 435 ns +- 7 ns: 1.02x faster
- needle=16, haystack=32000, seed=1: 8.92 us +- 0.24 us -> 8.75 us +- 0.07 us: 1.02x faster
- needle=128, haystack=750, seed=3: 282 ns +- 4 ns -> 277 ns +- 3 ns: 1.02x faster
- needle=256, haystack=500, seed=3: 356 ns +- 5 ns -> 350 ns +- 4 ns: 1.02x faster
- needle=192, haystack=1000, seed=3: 337 ns +- 4 ns -> 331 ns +- 6 ns: 1.02x faster
- needle=384, haystack=16000, seed=2: 2.95 us +- 0.04 us -> 2.90 us +- 0.03 us: 1.02x faster
- needle=2, haystack=500, seed=1: 354 ns +- 3 ns -> 348 ns +- 8 ns: 1.02x faster
- needle=32, haystack=1000, seed=3: 277 ns +- 3 ns -> 273 ns +- 5 ns: 1.02x faster
- needle=64, haystack=24000, seed=1: 2.77 us +- 0.04 us -> 2.72 us +- 0.03 us: 1.02x faster
- needle=48, haystack=4000, seed=1: 778 ns +- 9 ns -> 765 ns +- 16 ns: 1.02x faster
- needle=96, haystack=1500, seed=2: 578 ns +- 7 ns -> 570 ns +- 8 ns: 1.02x faster
- needle=48, haystack=500, seed=1: 208 ns +- 2 ns -> 205 ns +- 2 ns: 1.02x faster
- needle=384, haystack=96000, seed=3: 18.9 us +- 0.2 us -> 18.6 us +- 0.2 us: 1.02x faster
- needle=32, haystack=2000, seed=2: 470 ns +- 7 ns -> 463 ns +- 7 ns: 1.01x faster
- needle=192, haystack=1000, seed=1: 364 ns +- 5 ns -> 359 ns +- 7 ns: 1.01x faster
- needle=64, haystack=8000, seed=3: 875 ns +- 13 ns -> 867 ns +- 12 ns: 1.01x faster
- needle=96, haystack=24000, seed=2: 3.09 us +- 0.03 us -> 3.06 us +- 0.03 us: 1.01x faster
Benchmark hidden because not significant (31): needle=2, haystack=750, seed=2, needle=2, haystack=3000, seed=1, needle=2, haystack=12000, seed=1, needle=3, haystack=750, seed=1, needle=3, haystack=12000, seed=3, needle=3, haystack=16000, seed=3, needle=4, haystack=500, seed=2, needle=4, haystack=12000, seed=3, needle=4, haystack=16000, seed=3, needle=6, haystack=3000, seed=1, needle=8, haystack=16000, seed=1, needle=8, haystack=32000, seed=2, needle=12, haystack=24000, seed=1, needle=16, haystack=750, seed=1, needle=24, haystack=32000, seed=2, needle=48, haystack=12000, seed=2, needle=96, haystack=1000, seed=3, needle=96, haystack=3000, seed=1, needle=96, haystack=6000, seed=3, needle=96, haystack=8000, seed=1, needle=96, haystack=8000, seed=2, needle=96, haystack=16000, seed=1, needle=96, haystack=16000, seed=3, needle=128, haystack=500, seed=1, needle=128, haystack=1500, seed=1, needle=128, haystack=6000, seed=3, needle=128, haystack=8000, seed=1, needle=128, haystack=32000, seed=3, needle=192, haystack=32000, seed=1, needle=256, haystack=2000, seed=1, needle=256, haystack=8000, seed=3
Geometric mean: 1.10x faster
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment