@mutuella: Das habe ich jetzt nicht verstanden. Was bedeutet "innerhalb" eines Programms? Wieso musst Du das "wieder selbst importieren"?
Kann es sein, dass Du nicht verstanden hast, wie timeit anzuwenden ist?
Was ist schneller? getter oder dictionary-Abfrage?
Innerhalb eines Programms ist IMHO Profiling sowieso die bessere Lösung. Da kann man sich dann auch die Zeit auf die einzelnen Funktionen/Aufrufe runterbrechen lassen und weiss dann nicht nur wie lange es gebraucht hat, sondern auch *wo* es wie lange gebraucht hat.
Das kann nicht sein. Das ist so...lunar hat geschrieben:Kann es sein, dass Du nicht verstanden hast, wie timeit anzuwenden ist?
Wenn ich z. B. innerhalb von 'test.py' die Funktion
Code: Alles auswählen
def hallo(anzahl):
for i in range(anzahl):
print('Voelliger Quatsch')
Code: Alles auswählen
import timeit
def hallo(anzahl):
for i in range(anzahl):
print('Voelliger Quatsch')
timer = timeit.Timer('hallo(100)', 'import test')
print(timer.timeit(number=1)
Auch der Beispielcode aus der timeit()-Doku funktioniert nicht:
Code: Alles auswählen
def test():
"Stupid test function"
L = []
for i in range(100):
L.append(i)
if __name__=='__main__':
from timeit import Timer
t = Timer("test()", "from __main__ import test")
print t.timeit()
mutetella
Was heißt denn funktioniert nicht? Bei mir geht der gezeigte code aus der doku.
[url=http://wiki.python-forum.de/PEP%208%20%28%C3%9Cbersetzung%29]PEP 8[/url] - Quak!
[url=http://tutorial.pocoo.org/index.html]Tutorial in Deutsch[/url]
[url=http://tutorial.pocoo.org/index.html]Tutorial in Deutsch[/url]
Ok, ich geh' Schafe hüten....
Zeile 7 muss natürlich lauten:
timer = timeit.Timer('hallo(100)', 'from test import hallo')
Oder dann eben 'from __main__' oder woher auch immer...
Voll peinlich....
Gruß
mutetella
Zeile 7 muss natürlich lauten:
timer = timeit.Timer('hallo(100)', 'from test import hallo')
Oder dann eben 'from __main__' oder woher auch immer...
Voll peinlich....
Gruß
mutetella
Wenn man allerdings der zu messenden Funktion 'hallo()' einen Parameter übergeben möchte, wird die Syntax schon ein bischen abenteuerlich:
count = 10000
timer = timeit.Timer('hallo('+str(count)+')', 'from test import hallo')
Oder gibt's da 'ne schönere Lösung?
Gruß
mutetella
@BlackJack:
Werd' mich jetzt auch mal mit profile beschäftigen, wenn ich timeit() kapiert hab'....
count = 10000
timer = timeit.Timer('hallo('+str(count)+')', 'from test import hallo')
Oder gibt's da 'ne schönere Lösung?
Gruß
mutetella
@BlackJack:
Werd' mich jetzt auch mal mit profile beschäftigen, wenn ich timeit() kapiert hab'....
Code: Alles auswählen
count = 10000
timer = timeit.Timer('hallo(%s)'%count, 'from test import hallo')
the more they change the more they stay the same
@Dav1d:
Ok, schaut definitiv besser aus...
Ok, schaut definitiv besser aus...