IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

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

Avatar
Autor: FastNode
Aktivity