Skip to content

Instantly share code, notes, and snippets.

@senderle
Forked from mhavard999/benchmarks.py
Last active August 29, 2015 14:24
Show Gist options
  • Save senderle/09153e667cd08a0279e7 to your computer and use it in GitHub Desktop.
Save senderle/09153e667cd08a0279e7 to your computer and use it in GitHub Desktop.
from timeit import timeit
from random import choice, randint
from string import ascii_letters
# random_keys = [''.join([choice(ascii_letters) for i in range(randint(4,30))]) for i in range(10000)]
def add2dict(random_keys):
s = {}
for key in random_keys:
s[key] = 1
return s
def add2set(random_keys):
s = set()
for key in random_keys:
s.add(key)
return s
def add2set_fast(random_keys):
s = set()
s_add = s.add
for key in random_keys:
s_add(key)
return s
def iterate_over_dict(s):
newl = []
for key in s.keys():
newl.append({
'dogs' : 'cats',
'birds' : 'bees',
'bags' : 'bogs'
})
return newl
def iterate_over_dict_iterkeys(s):
newl = []
for key in s.iterkeys():
newl.append({
'dogs' : 'cats',
'birds' : 'bees',
'bags' : 'bogs'
})
return newl
def iterate_over_set(s):
newl = []
for key in s:
newl.append({
'dogs' : 'cats',
'birds' : 'bees',
'bags' : 'bogs'
})
return newl
def add2list(random_keys):
l = []
for key in random_keys:
l.append(key)
return l
def add2list_fast(random_keys):
l = []
l_append = l.append
for key in random_keys:
l_append(key)
return l
def iterate_over_list(l):
newl = []
for key in l:
newl.append({
'dogs' : 'cats',
'birds' : 'bees',
'bags' : 'bogs'
})
return newl
print 'add2dict'
print timeit("add2dict(random_keys)",
setup="from __main__ import add2dict; from random import choice, randint; from string import ascii_letters; random_keys = [''.join([choice(ascii_letters) for i in range(randint(4,30))]) for i in range(10000)]",
number=50000)
print 'add2list'
print timeit("add2list(random_keys)",
setup="from __main__ import add2list; from random import choice, randint; from string import ascii_letters; random_keys = [''.join([choice(ascii_letters) for i in range(randint(4,30))]) for i in range(10000)]",
number=50000)
print 'add2list_fast'
print timeit("add2list_fast(random_keys)",
setup="from __main__ import add2list_fast; from random import choice, randint; from string import ascii_letters; random_keys = [''.join([choice(ascii_letters) for i in range(randint(4,30))]) for i in range(10000)]",
number=50000)
print 'add2set'
print timeit("add2set(random_keys)",
setup="from __main__ import add2set; from random import choice, randint; from string import ascii_letters; random_keys = [''.join([choice(ascii_letters) for i in range(randint(4,30))]) for i in range(10000)]",
number=50000)
print 'add2set_fast'
print timeit("add2set_fast(random_keys)",
setup="from __main__ import add2set_fast; from random import choice, randint; from string import ascii_letters; random_keys = [''.join([choice(ascii_letters) for i in range(randint(4,30))]) for i in range(10000)]",
number=50000)
print '\n\n-------\n\n'
print 'iterate_over_dict'
print timeit("iterate_over_dict(s)",
setup="from __main__ import iterate_over_dict, add2dict; from random import choice, randint; from string import ascii_letters; s = add2dict([''.join([choice(ascii_letters) for i in range(randint(4,30))]) for i in range(10000)])",
number=10000)
print 'iterate_over_dict_iterkeys'
print timeit("iterate_over_dict_iterkeys(s)",
setup="from __main__ import iterate_over_dict_iterkeys, add2dict; from random import choice, randint; from string import ascii_letters; s = add2dict([''.join([choice(ascii_letters) for i in range(randint(4,30))]) for i in range(10000)])",
number=10000)
print 'iterate_over_list'
print timeit("iterate_over_list(s)",
setup="from __main__ import iterate_over_list, add2list; from random import choice, randint; from string import ascii_letters; s = add2list([''.join([choice(ascii_letters) for i in range(randint(4,30))]) for i in range(10000)])",
number=10000)
print 'iterate_over_set'
print timeit("iterate_over_set(s)",
setup="from __main__ import iterate_over_set, add2set; from random import choice, randint; from string import ascii_letters; s = add2set([''.join([choice(ascii_letters) for i in range(randint(4,30))]) for i in range(10000)])",
number=10000)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment