Skip to content

Instantly share code, notes, and snippets.

@mhavard999
Created June 6, 2015 20:08
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save mhavard999/29ed701c7c3281beac15 to your computer and use it in GitHub Desktop.
Save mhavard999/29ed701c7c3281beac15 to your computer and use it in GitHub Desktop.
Python Benchmarks
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 iterate_over_dict(s):
newl = []
for key in s.keys():
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 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 '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 '\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_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