Bun vs Node.js: Der bessere Bundler

Wir bei Hitabis beschäftigen uns intensiv mit Green Coding – schließlich haben wir mit Oaklean ein eigenes Tool entwickelt, um Energieverbrauch auf Code-Ebene zu messen. Unsere Erfahrung zeigt: Das größte Potential liegt oft NICHT dort, wo man es zuerst vermutet. 

Nachdem wir bereits Runtime gegen Runtime verglichen haben, wollten wir nun einen Schritt weiter gehen. Wie sieht es eigentlich bei den Bundlern aus? Die Wahl des Bundlers hat massive Auswirkungen auf Production Builds, die täglich viele Daten verarbeiten. Das summiert sich schnell. Somit ist die Wahl des Bundlers ein großer Hebel, um Strom und Serverkosten zu sparen.

Die Messung 

Wir haben ein TypeScript-Projekt mit unterschiedlichen Bundlern bauen lassen und dann mit identischen Testdaten 50-mal ausgeführt und den Energieverbrauch in Millijoule (mJ) mit Hilfe von unserem Open-Source-Tool Oaklean gemessen. Dabei haben wir uns Node in einer alten Version, der aktuellen und der LTS-Version angeschaut.

Die Ergebnisse

BundlerBunNode@22Node@24Node@25
Bun Bundler509 mJ897 mJ853 mJ888 mJ
TSC1103 mJ1547 mJ1493 mJ1403 mJ
esbuild1136 mJ1702 mJ1380 mJ1402 mJ
webpack1078 mJ1627 mJ1488 mJ1516 mJ
rollup1132 mJ1729 mJ1431 mJ1392 mJ
parcel1209 mJ1514 mJ1435 mJ1475 mJ

Die Erkenntnisse

  1. Der Bun Bundler ist unschlagbar: mit 509 mJ verbraucht er ~50% weniger als TSC und ~40% weniger als alle anderen Bundler.

  2. Node@24 und Node@25 sind effizienter als Node@22: Für den Bun Bundler ist Node@24 optimal, für TSC/TypeScript bietet Node@25 leichte Vorteile.

  3. Bun Runtime + Bun Bundler = Maximum Efficiency: die Kombination verbraucht nur 509 mJ (Bun→Bun) vs. 1702 mJ (Node@22→esbuild). 

Fazit 

Der Bun Bundler ist der energieeffizienteste JavaScript-Bundler – egal ob für Bun- oder Node-Runtime. In Kombination mit Bun oder Node@24 lässt sich der Energieverbrauch im Build-Prozess um ~50% reduzieren. Für Green Coding lohnt sich der Wechsel nicht nur bei der Runtime, sondern auch beim Build-Tool-Chain.