Seite 1 von 1

performance unterschiede

Verfasst: Freitag 21. Oktober 2022, 09:25
von Fire Spike
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?

Re: performance unterschiede

Verfasst: Freitag 21. Oktober 2022, 09:31
von __deets__
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.

Re: performance unterschiede

Verfasst: Freitag 21. Oktober 2022, 10:52
von Fire Spike
Danke für die Antwort.
Die Exponenten habe ich übersehen 🙄