Aktuelle Nachrichten & Meldungen

C++-nach-JavaScript-Compiler Cheerp 1.1 optimiert die Performance

Gepostet am Nov 9, 2015

Gut ein Jahr nach dem ersten Release des Cheerp-Projekts, mit dem Entwickler C++-Code in JavaScript umwandeln, erhält Version 1.1 vor allem Optimierungen.

Cheerp richtet sich an Entwickler, die C++ in Webanwendungen verwenden wollen. Dazu übersetzt das Tool den in C und C++ geschriebenen Code in JavaScript. Im Vergleich zum Mitbewerber Emscripten verwendet es keine JavaScript-Arrays, sondern arbeitet mit einem Wrapper-Mechanismus. Damit müssen sich Programmierer im Vorfeld keine Gedanken über die benötigte Größe des Arrays machen. Durch vorzeitige Reservierung stoßen sie potenziell an die Grenzen des angefragten Bereichs oder belasten ? gerade auf Mobilgeräten ? durch zu viel Speicherhunger das System unnötig.

Cheerp erfordert für seinen Ansatz dafür unter anderem eine striktere Typsicherheit. Laut der Erklärung der Macher arbeiten viele C++-Entwickler ohnehin recht sauber, sodass die Kunden typischerweise nur 0,1 Prozent des Originalcodes ändern müssten. Einige Modifikationen wären bei jeder Übertragung ins Web nötig, da es dort beispielsweise kein echtes Multithreading gäbe.

Bessere Kenntnis der bremsenden Faktoren

Dennoch gesteht das Cheerp-Team erhebliche Performance-Einbußen gegenüber nativem Code und dem Wettbewerb ein. Die ersten Benchmarks eines großen Kundenprojekts mit etwa einer Millionen Codezeilen habe eine Verlangsamung des Web-Codes im Vergleich zur nativen Anwendung um den Faktor 40 ergeben.

Daher lag der Fokus in der Weiterentwicklung nach dem Erscheinen von 1.0 auf der Performance. Mit der aktuellen Version 1.1 sei die Verlangsamung auf einen Faktor zwischen drei und zehn gesunken. Die stärksten Einbußen verzeichne der Webcode bei der Speicherreservierung für große und komplexe Objekte innerhalb viel verwendeter Funktionen. Daher sei durch Codeoptimierung eine deutlich geringere Geschwindigkeitseinbuße möglich.

Verständnis der JavaScript-Engines

Gleichzeitig haben die Entwickler den Fokus weiter auf Stabilität gesetzt. Für die Zukunft kündigen die Macher weitere Verbesserungen an. Die letzten Monate hätten ihnen dazu einige Ansätze eröffnet. Zudem sei für sie der Zeitpunkt gekommen, tiefer in die JavaScript-Engines zu schauen, um zu erkennen, welchen Maschinencode diese erzeugen. So wollen die Macher bei der Übersetzung optimierten JavaScript-Code erstellen.

Cheerp ist auf GitHub verfügbar. Zudem bieten die Macher des Compilers eine kommerzielle Lizenz auf ihrer Website an. (rme)

visite Website

passend zum Thema