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

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

w

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.