InfoQ

InfoQ

News

My Bookmarks

Login or Register to enable bookmarks for unlimited time.

The content has been bookmarked!

There was an error bookmarking this content! Please retry.

Node.js Now Runs Natively on Windows

Posted by Abel Avram on Nov 11, 2011

Sections
Development
Topics
Javascript ,
Web Development ,
Dynamic Languages ,
Languages ,
Windows ,
Programming ,
Operating Systems ,
Node.js ,
Asynchronous Programming

Node.js can now run on Windows without Cygwin, the performance being significantly improved both on Windows and UX systems.

Ryan Dahl, the creator of Node.js, has announced Node.js 0.6, a new stable version of the server-side JavaScript environment, the most important feature being the support of native Windows using I/O Completion Ports for sockets. Previous versions of Node.js could be used on Windows only via Cygwin, but now Cygwin builds are no longer supported. Besides Windows, Node.js is also supported on Linux, Mac OS X, webOS, and a number of UXes: Solaris, FreeBSD, and OpenBSD.

Dahl declared that porting to Windows involved major architectural changes, but most of the API has remained unchanged and the performance on Unix systems was not affected as it was initially feared. He gave some numbers as a proof:

  Linux v 0.4.12 Linux v 0.6.0
http_simple.js /bytes/1024 5461 r/s 6263 r/s
io.js read 19.75 MB/s 26.63 MB/s
io.js write 21.60 MB/s 17.40 MB/s
startup.js 74.7 ms 49.6 ms

The only problem seem to be writes where Node.js 0.6 has poorer performance on Linux. But by not using Cygwin, Node.js is having much better results on Windows as the following data shows:

  Windows v 0.4.12 Windows v 0.6.0
http_simple.js /bytes/1024 3858 r/s 5823 r/s
io.js read 12.41 MB/s 26.51 MB/s
io.js write 12.61 MB/s 33.58 MB/s
startup.js 152.81 ms 52.04 ms

Other major improvements in Node.js 0.6 are: Integrated load balancing for running multiple Node processes on a cluster and Built-in binding to zlib library. There is also better support for IPC between Node instances, an improved debugger, and Node is now using the V8 3.6.

The API changes are detailed on a Node’s GitHub page.

Dahl has also mentioned that they plan a faster release cycle, trying to release a new version when Google releases a new V8 version with Chrome.

No comments

Watch Thread Reply