: Python eignet sich m.E. sehr wohl für performancekritische Programme. In der Regel ist es so, dass in einem Programm nur sehr wenige, kleine Teile tatsächlich performancekritisch sind. Zunächst sollte man das komplette Programm(system) in Python entwickeln und testen. Das geht viel schneller und einfacher als z.B. mit C++. Nur wenn sich beim Testen herausstellt, dass das System tatsächlich zu langsam ist, ist eine Optimierung überhaupt sinnvoll. Hier hilft dann z.B. ein Profiler. Wenn dann die zu langsamen Bereiche im Programm identifiziert sind, sollte man nochmal einen Blick riskieren, ob vielleicht der Algorithmus per se langsam ist oder schlecht umgesetzt. Und erst danach kann man die infragekommenden Programmbereiche nach C portieren und durch die Python-Implementierung austauschen, was z.B. mit ctypes oder SWIG überraschend einfach geht (auch im Vergleich zu Java). Natürlich läuft C oder C++ schneller als Python, aber nach meiner Erfahrung wird dieser Vorteil häufig dadurch zunichte gemacht, dass man aus Bequemlichkeit einfachere (schlechtere) Algorithmen wählt, z.B. eine Suchschleife anstelle eines Dictionary-Lookups etc, außerdem dauert die Entwicklung um ein Vielfaches länger. In der gleichen Zeit hat man in Python ein gutes Programm geschrieben und schon getestet, so dass man sich auf die wirklich kritischen Stellen konzentrieren kann. Mit Python ist es auch (relativ) einfach, auf Events aus dem Betriebssystem (z.B. Windows Event,Mutex,...) zu reagieren, während man bei anderen Sprachen eher auf Polling zurückgreift - und wenn ein Programm ein Ereignis schneller bemerkt, hat es auch mehr Zeit darauf zu reagieren. --HenningVonBargen |
Entschuldigung, dass ich Python aus der Liste [Performanz in ProgrammierSprachAuswahl] herausgelöst habe. Das angegebene Tool gibt nur für 386-Architektur und will Code 2-100x beschleunigen. Auch wenn das funktioniert, wird es keinen Performance-Jäger anlocken, sondern zeigt eher wie unkompetitiv Python ohne diese Nachbehandlung ist. -- HelmutLeitner
Ein JIT-Compiler für Python, der manchmal X in Geschwindigkeit übertrifft, kann trotzdem im Mittel um 20-50% langsamer sein.
![]() |
|