Wiki-Mirror.deWiki-Mirror.de

    Abonnieren Sie Updates

    Facebook Twitter Instagram
    Tuesday, March 21
    Facebook Twitter LinkedIn VKontakte
    Wiki-Mirror.deWiki-Mirror.de
    • Home
    • Technologien
    • Software-Neuigkeiten
    • Hochwertige Software
    • beste Software
    • Softwareentwickler
    Wiki-Mirror.deWiki-Mirror.de
    beste Software

    Bun-Benchmark wird Node noch nicht ersetzen. Es ist aber schnell.

    JoyceBy JoyceNovember 5, 2022Updated:February 5, 2023No Comments7 Mins Read
    Facebook Twitter Pinterest LinkedIn Tumblr Email
    Share
    Facebook Twitter LinkedIn Pinterest Email

     

    Was ist Ihre aktuelle JavaScript-Laufzeit und warum ist es Node.js? Aber haben Sie gehört, dass es eine neue Lösung in der Stadt gibt? Bun ist ein nativer Code-Bundler, Transpiler und Task-Runner mit einem integrierten npm-Client. Die Entwickler versprachen, unser Bedürfnis nach Geschwindigkeit zu erfüllen, und räumten der Leistung von Bun Vorrang vor allen anderen Funktionen ein. In diesem Artikel zeige ich Ihnen, wie Sie ein bestehendes Node.js-Projekt auf dieser neuen JavaScript-Laufzeit starten und vergleichen, ob Bun wirklich der schnellste da draußen ist.

    Das Wichtigste zuerst, was ist JavaScript-Laufzeit?

    In einer Laufzeitumgebung wird Ihr Programm ausgeführt. Du kannst es schaffen:

    • durch den integrierten Browser der JavaScript-Engine (V8 entwickelt vom Chromium Project für Google Chrome)
    • auf Serverumgebungen (wie Node.js oder Bun), die de-facto-Implementierungen eines „Browsers“ sind, der auf dem Server läuft.

    Es gibt nur wenige Javascript-Laufzeiten auf dem Markt. Zum Zeitpunkt des Schreibens dieses Artikels sehen die ersten drei so aus.

    Node.js

    Node.js – die beliebteste (von GitHub-Stars), die älteste, aber vor allem „die Erste“. Vor Node existierte JS nur im Browser, daher haben wir viel zu verdanken.

    Bei The Software House führen wir unsere JS-Anwendungen auf Node.js aus, da es sich um eine etablierte JS-Ausführungsumgebung handelt. Tatsächlich ist es das einzige, das von AWS Lambda und GCP Functions unterstützt wird.

    Wenn Sie hier sind, kennen Sie Node definitiv in- und auswendig, also machen wir weiter.

    Deno

    Auf dem zweiten Platz gibt es Deno. Wir haben bereits einige Versuche unternommen, Deno auszuprobieren, und wir haben ihm wirklich eine Chance gegeben. Leider fanden wir es nicht überzeugend genug, auf diese noch etwas unausgereifte JS-Laufzeitumgebung umzusteigen.

    Lesen Sie mehr über unsere Deno-Erfahrungen:

    • Deno-Tutorial – praktischer Überblick über den Rivalen von Node.js
    • Lassen Sie uns eine REST-API mit Deno erstellen! Ein genauerer Blick auf die Alternative von Node

    Aber die Tatsache war eine Tatsache – ein Wettbewerb erschien. Wir waren seitdem gespannt, ob etwas anderes als Node.js und Deno die Hoffnungen der JS-Entwickler auf superschnelle JS-Anwendungen erfüllen würde.

    Und dann wurde Bun gebacken Ofen!

    Was ist Brötchen?

    Den dritten Platz belegt zum jetzigen Zeitpunkt frisch und knackig Brötchen – die neueste und am schnellsten wachsende JS-Laufzeitumgebung. Bun erregte viel Aufmerksamkeit, als es im August 2022 eine Finanzierung in Höhe von 7 Millionen US-Dollar erhielt.

    Das gesamte Bun-Projekt konzentriert sich auf Leistung und darauf, ein All-in-One-Tool zu sein (Laufzeit, Bundler, Paketmanager, Transpiler).

    Im „traditionellen“ Node.js benötigen Sie die kombinierte Leistung einiger Tools, um die gleichen Ziele zu erreichen: npm, Webpack usw.

    Wie soll Bun schneller sein als Node?

    Um seine Leistung zu steigern, schrieb das Bun-Team es von Grund auf neu in Zig, einer Low-Level-C-Alternative. Die Browser-Engine, die JS-Code in Bun ausführt, basiert auf JavaScript Core – der JS-Engine in Safari, die als schneller gilt als V8 von Node, die Engine in Chromium.

    Bunships und das Entwicklungsteam behaupten, dass es schneller ist, weil enorm viel Zeit für das Profilieren, Benchmarking und Optimieren von Dingen aufgewendet wird. Das allgemeine Thema: Zigs Low-Level-Kontrolle über den Speicher und das Fehlen eines versteckten Kontrollflusses machen es so viel einfacher, schnelle Software zu schreiben.

    Zusammenfassend behaupten die Entwickler von Bun, dass es 4-mal mehr Anfragen pro Sekunde verarbeitet und Pakete 30-mal schneller installiert werden als mit npm.

    Meine Zeit mit Bun

    Nachdem ich die Zusicherungen des Bun-Erstellers und die Community-Diskussion gelesen hatte, dachte ich: „Das sind einige große Behauptungen“. Ich war neugierig, ob das stimmt, was sie sagen. Ist Bun wirklich so schnell? Tatsächlich schneller als Node.js?

    Ich habe bereits einige Benchmarks (und andere technische Lösungen für diese Angelegenheit) gesehen, die der Welt versprochen, aber kaum geliefert wurden, also würde ich Node nicht ohne harte Daten ersetzen. Also habe ich getan, was getan werden musste: Bun installieren und die Nummer mit einigen Leistungstests ermitteln.

    Kommen wir zur Umsetzung.

    Wie führe ich meine Express-App mit Bun aus?

    Um Bun zu testen, habe ich das hausgemachte (oder sollte ich eher „officemade“ sagen) von The Software House verwendet. Express-Boilerplate. Dieser Boilerplate ist hochgradig skalierbar und konzentriert sich auf Leistung und Best Practices Boilerplate-Code für Node.js- und TypeScript-Apps.

    Wenn Sie Ihre Node.js-Projekte noch schneller starten möchten, finden Sie hier eine detaillierte Übersicht der TSH-Original-Boilerplate:

    • Erstellen Sie mit dieser Boilerplate schneller skalierbare Node.js-Apps

    Um Bun auszuführen, müssen Sie also die folgenden Schritte ausführWie Sie sehen können, läuft ohne Änderungen.

    Vergleichen wir Bun und Node!

    1. Paketinstallationszeit

    Der erste Test, den wir durchführen, ist die Paketinstallationszeit. Wir haben einen einfachen Test durchgeführt, um den realen Arbeitsablauf zu simulieren.

    • Npm führt installierte 1273 Pakete in 23 Sekunden aus,
    • Brötchenlauf installiert 1003 in 15,6 Sekunden.

    *Haftungsausschluss: Bun ist zwar 32 % schneller, aber die Ausführungszeit ist nicht so schnell, wie der Schöpfer von Bun versprochen hat

    2. Docker-Image

    Das zweite, was verglichen werden muss, ist das Erstellen des ersten Docker-Images.

    Die Verwendung von Bun scheint die Docker-Image-Erstellungszeit nicht zu beeinflussen.

    3. App-Builder

    Test Nummer drei wird prüfen, wie Bun und npm mit dem Start des App-Builders umgehen.

    Der Unterschied ist so gering, dass es keinen Grund gibt, absichtlich auf Bun umzusteigen.

    4. Startzeit der Anwendung

    Das vierte, was wir vergleichen, ist die Startzeit der Anwendung.

    …aber auch hier ist der Unterschied vernachlässigbar.

    Nun das wichtigste. Ist Bun schneller als Node?

    Unten testen wir das einfache get endpoint /health

    Das Tool, das wir in diesem Test verwenden, is – ein modernes HTTP-Benchmarking-Tool, das in der Lage ist, eine erhebliche Last zu erzeugen, wenn es auf einer einzelnen Mehrkern-CPU ausgeführt wird.

    In diesen Tests verwenden wir Knoten 16.15.0 und Brötchen 0.2.1.

    Testen Sie 1. 10000 Verbindungen in 60 Sekunden mit einer variablen Anzahl von Threads

    Okay, fair genug. Wie wäre es, wenn wir es mit anderen Parametern ein wenig optimieren?

    10 Threads in 60 Sekunden, mit einer variablen Anzahl von Verbindungen

     

    Wie Sie sehen können, sind die Ergebnisse abhängig von der Anzahl der Verbindungen und der Anzahl der Threads ähnlich. Aber in den meisten Fällen ist Node.js schneller. So…

    Sollten Sie von Node zu Bun wechseln? Wahrscheinlich nicht

    Ich habe gute und schlechte Nachrichten.

    Die schlechte Nachricht: Bun wird in absehbarer Zeit kein Ersatz für Node sein

    Für diesen Artikel habe ich eine vorhandene Node.js-Anwendung verwendet. Ich kann Ihnen sagen, dass es sich nicht lohnt, Ihre stabile Node-App auf Bun auszuführen. Auch wenn es enormes Potenzial und Raum für Erweiterungen gibt – im Moment ist es einfach zu unausgereift. Bun’s noch neu hat keine vollständige Dokumentation, und bei der Implementierung können verschiedene Fehler auftreten. Außerdem bin ich mir ziemlich sicher, dass es in absehbarer Zeit in serverlosen Lösungen mit AWS Lambda oder Google Cloud Functions nicht nützlich sein wird (zum jetzigen Zeitpunkt ist Node.js die einzige unterstützte Umgebung). Es wird einige Zeit dauern, bis Bun.js wächst und zu einer Technologie wird, die wir in kommerziellen Projekten einsetzen können. Derzeit werden Buns winzige Gewinne bei Geschwindigkeitstests die verlorene Zeit nicht kompensieren, wenn Sie auf unerwartete Fehler stoßen.

    Wenn Sie ein neues selbst gehostetes Frühphasenprojekt gestartet haben, können Sie Bun.js von Anfang an verwenden und für die Arbeit mit Bun optimieren. Dann sicher – Tue es!

    Ein kleiner Trost für das Bun-Team, während sie wahrscheinlich ihre Lösung verbessern – Sie haben es bereits getan das süßeste Logo im Spiel. Schauen Sie sich nur noch einmal an, wie süß es ist!

     

    Die gute Nachricht: Node.js wird zu Innovationen gezwungen

    Jetzt hat Node.js nicht nur einen, sondern zwei potenzielle Konkurrenten auf dem Markt. Ich wette, das Node-Team wird „motivierter“ sein, die Leistung seines Produkts so weit wie möglich zu steigern.

    Ich glaube, dass diese Technologien wahrscheinlich im Ökosystem koexistieren werden, anstatt dass eine die andere verdrängt, ähnlich wie mehrere JDK-Distributionen in der Java-Welt entstanden sind, wobei eine hauptsächlich aus Lizenzgründen über der anderen ausgewählt wird. Aber wenn man die sich schnell verändernde Welt von JavaScript kennt, wird bald eine neue Technologie erscheinen, die den Markt erobern will.

    Michał Mońka

    Junior-Entwickler von Node.js

    Wissenshungriger Node.js-Entwickler. In seiner Freizeit reist Michał und betreibt verschiedene Sportarten, vor allem Klettern.

    Share. Facebook Twitter Pinterest LinkedIn Tumblr Email
    Previous ArticlePHP Development Services Eine großartige Option für Unternehmen
    Next Article Was ist Infrastruktur als Code und wann und wie wird sie verwendet?
    Joyce

    Related Posts

    Cypress vs. Playwright – welches JavaScript-Testframework ist besser?

    January 4, 2023

    Desktop-Inhalte können auf Mobilgeräten gut aussehen. Beispiele für Mikrointeraktionen

    December 10, 2022

    Leave A Reply Cancel Reply

    Top-Bewertungen

    Cypress vs. Playwright – welches JavaScript-Testframework ist besser?

    January 4, 2023

    Beste Programmiersprachen für die Blockchain-Entwicklung

    January 3, 2023

    Wie viel kostet die Entwicklung progressiver Web-Apps im Jahr 2023?

    January 2, 2023

    Schaffung einer langlebigen Plattform, um die Zukunft der Energie abzubilden

    January 1, 2023

    Abonnieren Sie Updates

    Archiv
    • January 2023
    • December 2022
    • November 2022
    • October 2022
    Über ons
    Über ons

    WENN SIE IHREN GEIST NICHT MIT ERFOLG FÜTTERN. ES WIRD MIT MITTELKRAFT VERFALLEN!

    Facebook Twitter Instagram Pinterest Vimeo YouTube
    Kürzliche Posts
    • Cypress vs. Playwright – welches JavaScript-Testframework ist besser?
    • Beste Programmiersprachen für die Blockchain-Entwicklung
    • Wie viel kostet die Entwicklung progressiver Web-Apps im Jahr 2023?
    • Schaffung einer langlebigen Plattform, um die Zukunft der Energie abzubilden
    • Die wichtigsten Softwareentwicklungstrends im Jahr 2023
    2023 © www.Wiki-mirror.de Alle Rechte vorbehalten

    Type above and press Enter to search. Press Esc to cancel.