Optimieren von Node.js-basierten Webservern in Shopsystemen mit C++

dotsource_labs_uebersicht_nodejs_ereignischschleife.jpg
Übersicht Node.js Ereignisschleife

Die dotSource GmbH entwickelt Shopsysteme mit Node.js, das seit 2009 existiert und zur OpenJS Foundation gehört. Diese Systeme laufen in der Cloud und nutzen einen Microservices-Ansatz, bei dem bei hoher Auslastung zusätzliche Server gestartet werden. Da Betreiber die Kosten niedrig halten wollen, sollte die Anzahl der Server möglichst gering sein. Dies gelingt, indem einzelne Server leistungsstärker werden. Eine Möglichkeit dazu ist der Einsatz von C++-Addons. Diese Arbeit untersucht, wann und wie solche Addons sinnvoll eingesetzt werden können. Dazu werden Tests durchgeführt, um die Leistung von reinem Node.js mit JavaScript mit der von Node.js mit C++-Addons zu vergleichen.

Die Tests zeigen, dass C++ die Leistung bei rechenintensiven Aufgaben wie der Preisberechnung verbessert, aber bei I/O-intensiven Prozessen wie dem Data Mapping keine Vorteile bringt. Wer C++ nutzen will, muss einige Dinge beachten: Die Entwicklung erfordert Fachwissen und kann teuer sein. Zudem birgt die manuelle Speicherverwaltung Risiken wie Speicherlecks. Oft ist es sinnvoller, bestehende npm-Pakete mit C++-Optimierung zu verwenden, anstatt eigene Addons zu entwickeln. Alternativ können Workerthreads genutzt werden, um rechenintensive Aufgaben auszulagern. Eine Kombination aus Workerthreads und C++ wäre ebenfalls möglich, um die Leistung weiter zu steigern.

Werkstudent Softwareentwicklung (m/w/d)

Hier geht´s zur Stelle!