( RaptoR | 2020. 02. 26., sze – 13:16 )

Számításigényes feladatokra nem nyers Pythont használnék az ismert okok miatt. Szerencsére van pár megoldás. Pl. ha meg tudod fogalmazni a problémádat mátrixos alakban, akkor használhatod a NumPy-t, ami a háttérben C-ben meg FORTRAN-ban írt matematikai könyvtárakat használja. Vagy épp ott van a Numba, ami biztosít egy `@jit()` dekorátort, amit egy függvény elé írva készít belőle egy optimalizált binárist az első futtatásnál, ami már kihasználja a többmagos CPU-kat. Sőt, a Numba arra is képes, hogy GPU-ra "fordítsa le" a kódot (nyilván ez csak bizonyos problémákra jó).

Ha meg van egy web app, aminek időnként hosszabb ideig tartó műveleteket kell végrehajtania, arra használnék egy task-managert (Huey, Celery, Dramatiq, stb.) és annyi workert állítanék be, ami megfelelően kihasználja a hardvert.

Tehát abban egyetértünk, hogy a számításigényes feladatokra a "nyers" Python lassabb, mintha pl. egy optimalizált C kód. A kérdés az, hogy megéri-e Pythonnál maradni és azt gyorsabbá tenni különféle kiegészítéssel, vagy hagyni az egészet és C-ben (vagy egyéb fordított nyelvben) megírni a programot. Ezt a kérdést eldönteni nem egyszerű (pláne egy projekt elején).