Microbenchmarks mit Python
main.py
import timeit
a = "irhierhoaegraograoihgahuaoaihraeuihgeihgiau"
b = ""
c = "ukjajrgioajrioagjgaiojaojrajgriejriigjoiesjrgsiojgresiojg"
d = "ioeg"
e = "aeohgargaijfiawifaaaohgaurhgiawhguiahuhhi"
f = "feiorgeio"
g = "r"
h = "eigeio"
i = "erghsorgaorjgiaorjgioajgoajeiroaj"
j = "oiwrg"for _ in range( 5 ):
start_time = timeit.default_timer()
for _ in range( 100000 ):
x = ''.join( [ a, b, c, d, e, f, g, h, i, j ])
print( timeit.default_timer() - start_time )start_time = timeit.default_timer()
for _ in range( 100000 ):
x = f'{a}{b}{c}{d}{e}{f}{g}{h}{i}{j}'
print( timeit.default_timer() - start_time )for _ in range( 100000 ):
x = a + b + c + d + e + f + g + h + i + j
time_diff = timeit.default_timer() - start_time
print( timeit.default_timer() - start_time )for _ in range( 100000 ):
x = '{}{}{}{}{}{}{}{}{}{}'.format( a, b, c, d, e, f, g, h, i, j )
time_diff = timeit.default_timer() - start_time
print( timeit.default_timer() - start_time )print()
- Protokoll
0.132550858
0.11880729099999998
0.327809222
0.570456571
0.110032346
0.10463181999999993
0.2865806619999999
0.5006269039999999
0.10933702099999998
0.10488155499999996
0.2858361599999999
0.4998657249999998
0.10952731599999987
0.10229012400000004
0.28282479699999996
0.5511474139999999
0.13750194599999999
0.12796582099999965
0.3549461279999999
0.6235099269999997
python -m timeit "1 + 2"
10000000 loops, best of 3: 0.0468 usec per loop
%~> python -m timeit -s "x = range(10000)" "sum(x)"
1000 loops, best of 3: 543 usec per loop
%~> python -m timeit -s "x = range(10000)" -s "y = range(100)" "sum(x)" "min(y)"
1000 loops, best of 3: 554 usec per loop
def mytimer( function, iterations ):
start_time = timeit.default_timer();
for x in range( iterations ):
if not function(): print( "what?" )
print( timeit.default_timer() - start_time )
import timeit
f();
start_time = timeit.default_timer()
func1()
print(timeit.default_timer() - start_time)
start_time = timeit.default_timer()
func2()
print(timeit.default_timer() - start_time)
test.py:
def InsertionSort(): ...
def TimSort(): ...
- Kommandozeile
% python -mtimeit -s'import test' 'test.InsertionSort()'
% python -mtimeit -s'import test' 'test.TimSort()'
main.py
import timeit
a = "irhierhoaegraograoihgahuaoaihraeuihgeihgiau"
b = ""
c = "ukjajrgioajrioagjgaiojaojrajgriejriigjoiesjrgsiojgresiojg"
d = "ioeg"
e = "aeohgargaijfiawifaaaohgaurhgiawhguiahuhhi"
f = "feiorgeio"
g = "r"
h = "eigeio"
i = "erghsorgaorjgiaorjgioajgoajeiroaj"
j = "oiwrg"start_time = timeit.default_timer()
for i in range( 1000 ):
x = a + b + c + d + e + f + g + h + i + j