{"id":2186,"date":"2025-01-29T14:24:51","date_gmt":"2025-01-29T13:24:51","guid":{"rendered":"https:\/\/www.dotsource.de\/labs\/?p=2186"},"modified":"2025-01-29T14:25:52","modified_gmt":"2025-01-29T13:25:52","slug":"optimieren-von-node-js-basierten-webservern-in-shopsystemen-mit-c","status":"publish","type":"post","link":"https:\/\/www.dotsource.de\/labs\/optimieren-von-node-js-basierten-webservern-in-shopsystemen-mit-c\/","title":{"rendered":"Optimieren von Node.js-basierten Webservern in Shopsystemen mit C++"},"content":{"rendered":"\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"789\" height=\"352\" src=\"https:\/\/www.dotsource.de\/labs\/wp-content\/uploads\/sites\/4\/2025\/01\/dotsource_labs_uebersicht_nodejs_ergebnischschleife.jpg.png\" alt=\"dotsource_labs_uebersicht_nodejs_ereignischschleife.jpg\" class=\"wp-image-2185\" srcset=\"https:\/\/www.dotsource.de\/labs\/wp-content\/uploads\/sites\/4\/2025\/01\/dotsource_labs_uebersicht_nodejs_ergebnischschleife.jpg.png 789w, https:\/\/www.dotsource.de\/labs\/wp-content\/uploads\/sites\/4\/2025\/01\/dotsource_labs_uebersicht_nodejs_ergebnischschleife.jpg-300x134.png 300w, https:\/\/www.dotsource.de\/labs\/wp-content\/uploads\/sites\/4\/2025\/01\/dotsource_labs_uebersicht_nodejs_ergebnischschleife.jpg-768x343.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><figcaption class=\"wp-element-caption\">\u00dcbersicht Node.js Ereignisschleife<\/figcaption><\/figure>\n\n\n\n<p>Die dotSource GmbH entwickelt Shopsysteme mit Node.js, das seit 2009 existiert und zur OpenJS Foundation geh\u00f6rt. Diese Systeme laufen in der Cloud und nutzen einen Microservices-Ansatz, bei dem bei hoher Auslastung zus\u00e4tzliche Server gestartet werden. Da Betreiber die Kosten niedrig halten wollen, sollte die Anzahl der Server m\u00f6glichst gering sein. Dies gelingt, indem einzelne Server leistungsst\u00e4rker werden. Eine M\u00f6glichkeit dazu ist der Einsatz von C++-Addons. Diese Arbeit untersucht, wann und wie solche Addons sinnvoll eingesetzt werden k\u00f6nnen. Dazu werden Tests durchgef\u00fchrt, um die Leistung von reinem Node.js mit JavaScript mit der von Node.js mit C++-Addons zu vergleichen.<\/p>\n\n\n\n<p>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\u00f6nnen Workerthreads genutzt werden, um rechenintensive Aufgaben auszulagern. Eine Kombination aus Workerthreads und C++ w\u00e4re ebenfalls m\u00f6glich, um die Leistung weiter zu steigern.<\/p>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/www.dotsource.de\/labs\/wp-content\/uploads\/sites\/4\/2025\/01\/dotsource_labs_nodejs_Webserver_in_shopsystemen.pdf\">Kostenloser Download der gesamten Projektarbeit<\/a><\/div>\n<\/div>\n\n\n\n<!--more-->\n\n\n\n<p><\/p>\n\n\n\n<div class=\"teaser-block\">\n    <p class=\"h2\">Werkstudent Softwareentwicklung (m\/w\/d)<\/p>\n    <a class=\"btn btn-simple\" href=\"https:\/\/www.dotsource.de\/karriere\/werkstudent-e-commerce\/\"><span>\n        Hier geht\u00b4s zur Stelle!<span class=\"ds-iconfont icon-arrow-right\"><\/span>\n    <\/span><\/a>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Die dotSource GmbH entwickelt Shopsysteme mit Node.js, das seit 2009 existiert und zur OpenJS Foundation geh\u00f6rt. Diese Systeme laufen in der Cloud und nutzen einen Microservices-Ansatz, bei dem bei hoher Auslastung zus\u00e4tzliche Server gestartet werden. Da Betreiber die Kosten niedrig halten wollen, sollte die Anzahl der Server m\u00f6glichst gering sein. Dies gelingt, indem einzelne Server &hellip; <a href=\"https:\/\/www.dotsource.de\/labs\/optimieren-von-node-js-basierten-webservern-in-shopsystemen-mit-c\/\" class=\"more-link\">weiterlesen<span class=\"screen-reader-text\"> &#8222;Optimieren von Node.js-basierten Webservern in Shopsystemen mit C++&#8220;<\/span><\/a><\/p>\n","protected":false},"author":189,"featured_media":2185,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"ngg_post_thumbnail":0,"footnotes":""},"categories":[231],"tags":[38],"class_list":["post-2186","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-entwicklung","tag-e-commerce"],"aioseo_notices":[],"acf":[],"_links":{"self":[{"href":"https:\/\/www.dotsource.de\/labs\/wp-json\/wp\/v2\/posts\/2186","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dotsource.de\/labs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dotsource.de\/labs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dotsource.de\/labs\/wp-json\/wp\/v2\/users\/189"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dotsource.de\/labs\/wp-json\/wp\/v2\/comments?post=2186"}],"version-history":[{"count":2,"href":"https:\/\/www.dotsource.de\/labs\/wp-json\/wp\/v2\/posts\/2186\/revisions"}],"predecessor-version":[{"id":2189,"href":"https:\/\/www.dotsource.de\/labs\/wp-json\/wp\/v2\/posts\/2186\/revisions\/2189"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.dotsource.de\/labs\/wp-json\/wp\/v2\/media\/2185"}],"wp:attachment":[{"href":"https:\/\/www.dotsource.de\/labs\/wp-json\/wp\/v2\/media?parent=2186"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dotsource.de\/labs\/wp-json\/wp\/v2\/categories?post=2186"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dotsource.de\/labs\/wp-json\/wp\/v2\/tags?post=2186"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}