-
-
Save methane/db16224a99d12ad4ed170cf3bd45b819 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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