performance unterschiede

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Fire Spike
User
Beiträge: 329
Registriert: Montag 13. Mai 2019, 16:05
Wohnort: Erde

Hallo Leute.

Ich habe mal einen performance Test geschrieben um die Geschwindigkeit zu prüfen.

Code: Alles auswählen

import timeit
from functools import partial

data = [1, 2] * 10000
def coords(*args):
    data = args

def coords2(data):
    data = data

print(timeit.timeit(partial(coords, *data), number=100000) / 100000)
print(timeit.timeit(partial(coords2, data), number=100000) / 100000)

Code: Alles auswählen

2.7677682999999432e-05
4.572299999836105e-08
Ich verstehe jetzt nicht wieso coords schneller ist wie coords2.
Bei coords wird data ja in Argumente aufgesplitted, bei coords2 nur übergeben.

Kann mir das bitte jemand erklären?
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

coords ist ungefähr 500 mal langsamer als coords2. Du musst schon auch auf die exponenten schauen. Was bei einem solchen microbenchmark eine recht wertlose Erkenntnis ist, und nicht überraschend - denn da wird ja aus einer Datenstruktur die argumentliste gebaut.
Fire Spike
User
Beiträge: 329
Registriert: Montag 13. Mai 2019, 16:05
Wohnort: Erde

Danke für die Antwort.
Die Exponenten habe ich übersehen 🙄
Antworten