( uid_6201 | 2014. 07. 11., p – 23:44 )

... python esetén az asszociatív tömbök kényelmesek, de igen lassúak. A bitműveletek (bittologatás, egyesével mazsolázás) sem egy gyors mutatvány. Mindkettőből sok kellett az adatdekóderemhez, de egyéb okokból jó lenne, ha Pythonban maradna. Szóval ezért ilyen kiugróan lassú.

A Python előnye és hátránya, hogy egy

python<enter>


a = 5
help(a)

hatására ha kipróbálod, nem egy "int a=5;" történik, hanem egy int típusú osztály jön létre, saját metódusokkal. Ez kényelmessé teszi, ám JIT nélkül őrülten lassúvá és JIT-tel sem mondható közel C sebességűnek.

A C "struct" kulcsszava ehhez képest fapad, ám igen gyors (direkt memóriás, nem valami képlékenyen formálható osztály) és sok jó trükk megcsinálható vele. Ahogy a bit tologatások is közvetlen CPU utasításra fordulnak. Ellenben kevésbé kényelmes (és gyorsan tákolható), mint a Python list, dict, set, ... osztályainak kezelése.

Egyébként ha például stringeket kell feldolgozni, akkor elmondható, hogy

- C-ben írva 10 másodperc
- Pypy esetén kb. 30 másodperc
- Python esetén 100 másodperc

körüli string feldolgozási idővel lehet számolni.
Egy érdekes teszt eredménysor cPython és Pypy között: http://speed.pypy.org/