Skip to content

Instantly share code, notes, and snippets.

@sapamja
Created April 14, 2014 14:04
Show Gist options
  • Save sapamja/10651040 to your computer and use it in GitHub Desktop.
Save sapamja/10651040 to your computer and use it in GitHub Desktop.
Merging list
Output:
f1 102011 function calls in 0.701 seconds
Ordered by: standard name
ncalls tottime percall cumtime percall filename:lineno(function)
1 0.000 0.000 0.701 0.701 <string>:1(<module>)
1000 0.040 0.000 0.495 0.000 merge.py:3(f1)
1000 0.001 0.000 0.495 0.000 merge.py:42(<lambda>)
1 0.000 0.000 0.000 0.000 timeit.py:143(setup)
1 0.000 0.000 0.701 0.701 timeit.py:178(timeit)
1 0.206 0.206 0.701 0.701 timeit.py:96(inner)
1 0.000 0.000 0.000 0.000 {gc.disable}
1 0.000 0.000 0.000 0.000 {gc.enable}
1 0.000 0.000 0.000 0.000 {gc.isenabled}
1 0.000 0.000 0.000 0.000 {globals}
1 0.000 0.000 0.000 0.000 {method 'disable' of '_lsprof.Profiler' objects}
100000 0.455 0.000 0.455 0.000 {method 'extend' of 'list' objects}
2 0.000 0.000 0.000 0.000 {time.time}
None
f2 3011 function calls in 37.747 seconds
Ordered by: standard name
ncalls tottime percall cumtime percall filename:lineno(function)
1 0.000 0.000 37.747 37.747 <string>:1(<module>)
1000 0.003 0.000 37.418 0.037 merge.py:42(<lambda>)
1000 0.004 0.000 37.415 0.037 merge.py:8(f2)
1 0.000 0.000 0.000 0.000 timeit.py:143(setup)
1 0.000 0.000 37.747 37.747 timeit.py:178(timeit)
1 0.329 0.329 37.747 37.747 timeit.py:96(inner)
1 0.000 0.000 0.000 0.000 {gc.disable}
1 0.000 0.000 0.000 0.000 {gc.enable}
1 0.000 0.000 0.000 0.000 {gc.isenabled}
1 0.000 0.000 0.000 0.000 {globals}
1 0.000 0.000 0.000 0.000 {method 'disable' of '_lsprof.Profiler' objects}
1000 37.411 0.037 37.411 0.037 {sum}
2 0.000 0.000 0.000 0.000 {time.time}
None
f3 100002011 function calls in 28.044 seconds
Ordered by: standard name
ncalls tottime percall cumtime percall filename:lineno(function)
1 0.000 0.000 28.044 28.044 <string>:1(<module>)
1000 20.304 0.020 27.676 0.028 merge.py:11(f3)
1000 0.001 0.000 27.677 0.028 merge.py:42(<lambda>)
1 0.000 0.000 0.000 0.000 timeit.py:143(setup)
1 0.000 0.000 28.044 28.044 timeit.py:178(timeit)
1 0.367 0.367 28.044 28.044 timeit.py:96(inner)
1 0.000 0.000 0.000 0.000 {gc.disable}
1 0.000 0.000 0.000 0.000 {gc.enable}
1 0.000 0.000 0.000 0.000 {gc.isenabled}
1 0.000 0.000 0.000 0.000 {globals}
100000000 7.372 0.000 7.372 0.000 {method 'append' of 'list' objects}
1 0.000 0.000 0.000 0.000 {method 'disable' of '_lsprof.Profiler' objects}
2 0.000 0.000 0.000 0.000 {time.time}
None
f4 2011 function calls in 0.826 seconds
Ordered by: standard name
ncalls tottime percall cumtime percall filename:lineno(function)
1 0.000 0.000 0.826 0.826 <string>:1(<module>)
1000 0.463 0.000 0.463 0.000 merge.py:18(f4)
1000 0.001 0.000 0.464 0.000 merge.py:42(<lambda>)
1 0.000 0.000 0.000 0.000 timeit.py:143(setup)
1 0.000 0.000 0.826 0.826 timeit.py:178(timeit)
1 0.362 0.362 0.826 0.826 timeit.py:96(inner)
1 0.000 0.000 0.000 0.000 {gc.disable}
1 0.000 0.000 0.000 0.000 {gc.enable}
1 0.000 0.000 0.000 0.000 {gc.isenabled}
1 0.000 0.000 0.000 0.000 {globals}
1 0.000 0.000 0.000 0.000 {method 'disable' of '_lsprof.Profiler' objects}
2 0.000 0.000 0.000 0.000 {time.time}
None
f5 2011 function calls in 4.608 seconds
Ordered by: standard name
ncalls tottime percall cumtime percall filename:lineno(function)
1 0.000 0.000 4.608 4.608 <string>:1(<module>)
1000 4.253 0.004 4.253 0.004 merge.py:24(f5)
1000 0.001 0.000 4.254 0.004 merge.py:42(<lambda>)
1 0.000 0.000 0.000 0.000 timeit.py:143(setup)
1 0.000 0.000 4.608 4.608 timeit.py:178(timeit)
1 0.354 0.354 4.608 4.608 timeit.py:96(inner)
1 0.000 0.000 0.000 0.000 {gc.disable}
1 0.000 0.000 0.000 0.000 {gc.enable}
1 0.000 0.000 0.000 0.000 {gc.isenabled}
1 0.000 0.000 0.000 0.000 {globals}
1 0.000 0.000 0.000 0.000 {method 'disable' of '_lsprof.Profiler' objects}
2 0.000 0.000 0.000 0.000 {time.time}
None
f6 3011 function calls in 0.001 seconds
Ordered by: standard name
ncalls tottime percall cumtime percall filename:lineno(function)
1 0.000 0.000 0.001 0.001 <string>:1(<module>)
1000 0.000 0.000 0.001 0.000 merge.py:27(f6)
1000 0.000 0.000 0.001 0.000 merge.py:42(<lambda>)
1 0.000 0.000 0.000 0.000 timeit.py:143(setup)
1 0.000 0.000 0.001 0.001 timeit.py:178(timeit)
1 0.000 0.000 0.001 0.001 timeit.py:96(inner)
1000 0.000 0.000 0.000 0.000 {built-in method from_iterable}
1 0.000 0.000 0.000 0.000 {gc.disable}
1 0.000 0.000 0.000 0.000 {gc.enable}
1 0.000 0.000 0.000 0.000 {gc.isenabled}
1 0.000 0.000 0.000 0.000 {globals}
1 0.000 0.000 0.000 0.000 {method 'disable' of '_lsprof.Profiler' objects}
2 0.000 0.000 0.000 0.000 {time.time}
None
#!/usr/bin/python
def f1(List):
x = []
[ x.extend(y) for y in List ]
return x
def f2(List):
return sum(List, [])
def f3(List):
temp = []
for i in List:
for j in i:
temp.append(j)
return temp
def f4(List):
result=[]
for i in List:
result += i
return result
def f5(List):
return [j for i in List for j in i]
import cProfile
import itertools
from faker import Faker
from timeit import Timer
s = Faker()
func = [ f1, f2, f3, f4, f5, f6 ]
Lis = [[ s.random_int(min=1, max=99)
for x in range(1000) ]
for x in range(100)]
for fun in func:
t = Timer(lambda: fun(Lis))
print fun.__name__, cProfile.run('t.timeit(number=1000)')
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment