Geschwindigkeitsfrage: Objekte oder Dictionaries
Verfasst: Montag 13. Juli 2015, 12:01
Hi Leute,
nachdem ich ein bisschen selbst rumprobiert habe bin ich zu folgendem Ergebnis gekommen:
Wenn man beliebige Daten nur kapseln sowie ein- und auslesen will, so sind Dictionaries schneller als Objekte.
Mein Testcode:
Gilt dieser Speedfaktor von knapp 1.8 auch im komplexeren Betrieb also mit größeren Dictionaries und sehr viel mehr davon?
Liebe Grüße,
Alex
nachdem ich ein bisschen selbst rumprobiert habe bin ich zu folgendem Ergebnis gekommen:
Wenn man beliebige Daten nur kapseln sowie ein- und auslesen will, so sind Dictionaries schneller als Objekte.
Mein Testcode:
Code: Alles auswählen
>>> class CLS1(object):
... def __init__(self, a, b):
... self.a = a
... self.b = b
...
>>> def f1():
... o = CLS1(100,200)
... o.a
... o.b
... o.a = o.b - 5000
... o.b = 0
...
>>> def f2():
... o = {"a" : 100, "b" : 200}
... o["a"]
... o["b"]
... o["a"] = o["b"] - 5000
... o["b"] = 0
...
>>> def test(f, n):
... i = 0
... time1 = time.time()
... while i < n:
... f()
... i += 1
... time2 = time.time()
... print time2-time1
...
>>> test(f1,2000000)
3.26900005341
>>> test(f2,2000000)
1.83500003815
Liebe Grüße,
Alex