Skip to content

Instantly share code, notes, and snippets.

@methane
Created August 3, 2017 11:50
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save methane/db16224a99d12ad4ed170cf3bd45b819 to your computer and use it in GitHub Desktop.
Save methane/db16224a99d12ad4ed170cf3bd45b819 to your computer and use it in GitHub Desktop.
import perf
def unicode_nodummy(loops, n):
d = {"key"+str(i): i for i in range(n)}
t0 = perf.perf_counter()
for _ in range(loops):
d["key0"]
d["key1"]
d["key2"]
d["key3"]
d["key4"]
d["key0"]
d["key1"]
d["key2"]
d["key3"]
d["key4"]
d["key0"]
d["key1"]
d["key2"]
d["key3"]
d["key4"]
d["key0"]
d["key1"]
d["key2"]
d["key3"]
d["key4"]
return perf.perf_counter() - t0
def unicode_split(loops):
class A:
def __init__(self):
self.a, self.b, self.c, self.d = 1, 1, 1, 1
self.e, self.f, self.g, self.h = 1, 1, 1, 1
a, b, c, d = A(), A(), A(), A()
t0 = perf.perf_counter()
for _ in range(loops):
a.a; a.b; a.c; a.d
b.a; b.b; b.c; b.d
c.a; c.b; c.c; c.d
d.a; d.b; d.c; d.d
return perf.perf_counter() - t0
def fromkeys_int(loops):
ks = range(100)
t0 = perf.perf_counter()
for _ in range(loops):
dict.fromkeys(ks)
return perf.perf_counter() - t0
def fromkeys_str(loops):
ks = ["k%d" % i for i in range(100)]
t0 = perf.perf_counter()
for _ in range(loops):
dict.fromkeys(ks)
return perf.perf_counter() - t0
if __name__ == '__main__':
runner = perf.Runner()
runner.bench_time_func('unicode_nodummy_5', unicode_nodummy, 5)
runner.bench_time_func('unicode_nodummy_6', unicode_nodummy, 6)
runner.bench_time_func('unicode_split', unicode_split)
runner.bench_time_func('fromkeys_int', fromkeys_int)
runner.bench_time_func('fromkeys_str', fromkeys_str)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment