Auf der Suche nach Performance.


Zunächst ein kleiner Rückblick. Zuerst habe ich mit Python angefangen, dann aber aus Performance-Gründen auf C++ gewechselt, dann aber wegen der langen Compile-Zeiten und weil Python auch Mathlabplotbib besitzt wiederzurück zu Python gewechselt. Und da stehe ich jetzt und muss mit ansehen wie der cpython Interpreter sehr langsam den Code abarbeitet.

Fragen wir dochmal Google was die Alternative ist. Zu der Frage “Was ist die schnellste Scripting Sprache” gibt es einige Diskussionsbeiträge. Als Alternative zu Python wird genannt: GWAN (serverseitig), Javascript mit V8 Engine und LuaJIT. Aber wirklich schneller und vor allem verbreiteter als Python ist keine davon. Ja mehr noch, die Python Anhänger werden sagen, dass Python schneller ist als die V8 Javascript-Engine weil man in Python externe C++ Bibliotheken einbinden kann und C++ ist zweifellos die schnellste Sprache überhaupt. Was also tun? Wiederzurück zu C++ wechseln? wohl kaum, für den Alltagsbetrieb und zum Erstellen von Prototypen ist die Sprache ein Graus. Selbst wenn man viel Zeit investiert in die Einarbeitung ist das Programmieren aufwendig und der Sourcecode liest sich nicht besonders elegant. Im Grunde wäre Python die ideale Sprache nur ist diese leider langsam.

Meiner Ansicht nach geht es darum, dass man beide Sprachen nutzt. Die Frage ist nur wie man das möglichst ohne Aufwand macht. Boost.Python ist sehr komplex zu benutzen, die Anleitung ist auch nicht besonders einsteigerfreundlich. Bevor man Boost.Python online hat, kann man gleich den Code in C++ schreiben. Es gibt aber noch SWIG. Auf den ersten blick scheint das leichter benutzbar zu sein. Ist SWIG womöglich eine elegante Methode wie man Python Programme ohne viel Aufwand richtig schnell bekommt?

Leider nein, auch SWIG ist eine Ochsentour. Ähnlich wie bei Boost.Python gilt, dass es Leute gibt die damit klarkommen und bei all den Compilerschaltern noch einen Plan haben. Für Einsteiger ist es jedoch nichts. Offenbar ist es nicht so simpel eine C++ Bibliothek zu schreiben, die man in Python einbinden kann. Desweiteren machen SWIG und Boost.Python einen etwas veralteten Eindruck. Im Grunde wäre die bessere Alternative vermutlich Java zu benutzen, aber Java ist nicht so leistungsfähig wie Python.

Advertisements

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s