speed-test.py
Skript na testování "efektivnosti" algoritmu měřením doby jeho trvání.
Python
# pouziti (na Linuxu): skript spoustejte v shellu. jako parametry uvedte
# nazvy (prip. cesty) k jednotlivym python skriptum
# a cislo - pocet opakovani
#
# priklad: $ python speed-test.py 10 skript1.py skript2.py
# desetkrat spusti a zmeri cas behu skriptu "skript1.py" a "skript2.py"
# TESTOVANI RYCHLOSTI ALGORITMU
import time
import sys
i = 0
loops = 0
sources = []
for arg in sys.argv[1:]:
try:
loops = int(arg)
except ValueError:
sources.append(arg)
if loops == 0:
loops = 6
error = 0
errors = []
message = ''
results = []
res_index = 0
template = " {0} - {1}:\n {2!r}"
for script in sources:
try:
f = file(script, 'r')
code = compile(f.read(), '<string>', 'exec')
except IOError:
print '\n * Soubor ' + script + ' se nepodarilo otevrit.\n'
else:
results.insert(res_index, [script, []])
j = 0
while j < loops:
start_time = time.time()
try:
exec code
except Exception as ex:
error = 1
errors.append(template.format(script, type(ex).__name__, ex.args))
j = loops
break
results[res_index][1].append((time.time() - start_time) * 1000)
j += 1
res_index += 1
print '\n### ZAZNAM CHYB ###'
if error == 0:
print ' * Zadne chyby se behem testu nevyskytly *'
else:
for line in errors:
print line
print '\n### DETAILNI VYSLEDKY ###'
for res in results:
tims = '\n'
for tim in res[1]:
tims += ' ' + str(tim) + ' ms\n'
print ' ' + res[0] + tims
print '### PRUMERNE VYSLEDKY ###'
for res in results:
suma = 0
for t in res[1]:
suma += t
avg = suma / loops
print ' ' + res[0] + ' - ' + str(avg) + ' ms'
Neformátovaný
Přidáno: 9.12.2013
Expirace: Neuvedeno