Javascript-Server: Node.js 0.8 ist deutlich schneller

Node.js zählt nach wie vor zu den großen Hype-Themen. Das Javascript-Framework für asynchrone Serverapplikationen liegt jetzt in der stabilen Version 0.8.0 vor, die auf der neuen Version 3.11.10.10 von Googles Javascript-Engine V8 basiert, die mit gezielten Anpassungen durch die Google-Entwickler Node.js deutlich schneller macht.
In den von Node.js-Entwickler Isaac Schlueter veröffentlichten Benchmarks(öffnet im neuen Fenster) schreibt Node.js 0.8 Daten 2- bis 3-mal so schnell wie Node.js 0.6.19. Je kleiner die Datenpuffer sind, desto größer die Geschwindigkeitssteigerung. Beim Lesen kleiner Datenpuffer ist die neue Version fast doppelt so schnell wie die alte, beim Lesen großer Datenpuffer gibt es hingegen nur kleine Vorteile. Der Zugriff auf Dateien ist mit der neuen Version rund 40 Prozent schneller.
Die Node.js-Beispielapplikation eines HTTP-Servers, der "Hello World" ausgibt, ist bei kleinen Nachrichtengrößen in der neuen Version gut 10 Prozent schneller als unter Node.js 0.6, bei großen zum Teil dreimal so schnell.
Die mit Node.js eingeführte Bibliothek libuv , eine Abstraktion von libev und libeio , die mit Node.js 0.6 eingeführt wurde, ist in der neuen Version deutlich stabiler, was Node.js insgesamt zugutekommt. Wenn ein für Node.js geschriebenes Programm unter der neuen Version nicht funktioniert, sollen nur kleine Anpassungen(öffnet im neuen Fenster) notwendig sein.
Das bisherige Buildsystem WAF(öffnet im neuen Fenster) wird durch GYP(öffnet im neuen Fenster) ersetzt, da Letzteres neben Unix-Makefiles auch die Konfigurationsdateien für Microsofts Visual Studio beziehungsweise Apples XCode zu erstellen vermag. Mit den Domains wurde ein neues API eingeführt, um die Handhabe von Fehlern zu verbessern: Mehrere Input-/Output-Operationen können gruppiert werden, um deren Fehler gemeinsam zu behandeln.
Node.js führt zudem zwei Funktionen wieder ein, die in Versionen 0.6 verschwanden: Die Methode listenFD() aus Node.js 0.4 wird nun durch server.listen({ fd : number }) ersetzt. Zudem ist es wieder möglich, beliebige Datei-Deskriptoren als Standard-IO eines Kind-Prozessors zu verwenden.
Das Clustermodul soll in der neuen Version deutlich mächtiger sein, das entsprechende API ist aber nicht komplett abwärtskompatibel. Die meisten für Node.js 0.6 geschriebenen Programme sollen auch weiterhin laufen, das aber deutlich schneller(öffnet im neuen Fenster) . Überarbeitet wurden auch die Module Repl, Readline und TTY.
Wie vorangegangene Node.js-Versionen mit gerader Versionsnummer sollen auch API und ABI von Node.js 0.8 stabil bleiben. In den nächsten Wochen soll dann mit Node.js 0.9 die nächste Entwicklerserie gestartet werden. Geplant ist eine Überarbeitung des HTTP-Moduls und des Stream-API. Zudem erwägen die Entwickler, künftig TypedArrays statt Buffer zu verwenden. Auch die Geschwindigkeit bei SSL soll verbessert werden, wozu die Schnittstelle zu OpenSSL optimiert werden soll.
Große Veränderungen sind auch für das VM-Modul geplant. Diesem fehlen noch einige Funktionen, um den Javascript-Kontext eines Browsers zu emulieren. Auch das Crypto-Modul nutzt noch einige sehr alte APIs, was künftig geändert werden soll.
Grundlegend neue Funktionen sind für Node.js 0.9 nicht geplant, es geht vor allem darum, die Geschwindigkeit zu steigern und die Stabilität zu verbessern.
Node.js 0.8.0(öffnet im neuen Fenster) steht unter nodejs.org/#download(öffnet im neuen Fenster) ab sofort für Windows und Mac OS X als Installer sowie im Quelltext zum Download bereit.



