Node.js 用異步式 I/O 和事件驅動代替多線程,帶來了可觀的性能提高。Node.js 除了使用V8
做爲JavaScript引擎之外,還使用了高效的libev
和libeio
庫支持事件驅動和異步式 I/O。多線程
Node.js 的開發者在 libev 和 libeio 的基礎上還抽象出了層libuv
。對於 POSIX1操做系統, libuv 經過封裝 libev 和 libeio 來利用 epoll 或 kqueue。而在 Windows 下,libuv 使用了 Windows的IOCP(Input/Output Completion Port,輸入輸出完成端口)
機制,以在不一樣平臺下實現一樣的高性能。異步