是什麼讓Node.js比Java更快?

ourjs發表於2014-05-15

  每隔幾個星期,就有人發表Java和Node比較的效能評測,像PayPal 或者 Joey Whelan 發表的帖子.作為Node很多公共管理模組核心的維護者和貢獻者之一,Strong Loop 很高興看到Node的獲勝。每個人都知道,評測是一個特殊的衡量方式,其實並不適用於所有的情況。有時候Java要快一些,有時候Node要快一些。當然,用什麼和怎麼衡量才是最重要的。

  高併發性問題

  但是,有一件事我們都認同:在高併發性(成千上萬的連線)的情況下,你的伺服器需要達到非同步非阻塞的...。我將用IO來完成那種情況。但問題是,如果你的伺服器程式碼的任何部分阻塞你需要的一個執行緒。在這種級別的併發下,你不能去為每個連線建立執行緒。所以整個程式碼路徑需要非同步非阻塞式的, 不僅在輸入輸出層。這就是Node擅長的地方。

  儘管Java或Node或其他技術可能贏得一個評測,到現在為止還沒有形成伺服器端Node.js 完整的非阻塞生態系統。所有寫在非同步方式的模組超過50 k,就可以使用Node.js了。無數散落在網頁的程式碼示例,課程和教程都使用這種非同步方式。偵錯程式、顯示器、記錄器、叢集管理、測試框架甚至更多其他都期待你的所有程式碼是非阻塞非同步形式。

  直到Java或另一種語言生態系統到達這種支援非同步模式的程度(在Node中達到的水平因為瀏覽器中的非同步JavaScript),它不管原始的NIO效能是否比節點或其他任何評測結果表現的更好:需要大併發的專案會選擇Node(並且忍受他的缺點),因為它是完成他們專案的最好方式。

  大公司, 供應商和社群

  我們要幫助讓Node和其系統工具和庫保持成熟。其他人也在做著同樣的事情,從LinkedIn,雅虎與Groupon這樣的大使用者到像微軟,MuleSoft Appcelerator這樣的供應商和個人開發者每年貢獻成千上萬個有用的模組。Node將變得會越來越好,我們會幫助修復缺點或完全刪除它們,非同步的時代將會帶我們進入數以百萬計的連線裝置的樂土。

  使用StrongOps 監控節點應用程式

  準備好開始監視事件迴圈,管理節點叢集並找出記憶體洩漏了嗎?我們很容易地用一個簡單的npm安裝從本地或你最喜歡的雲開始StrongOps。

  接下來是什麼?

  在即將到來的版本里有什麼?大的效能優化,閱讀部落格瞭解更多資訊。

  看伯Bert Belder的綜合視訊介紹v0.12所有新新增的特性。

  準備用Node.js開發應用程式介面API並讓他們連線到您的資料嗎?我們已經讓這變得很容易,用一個簡單的npm安裝就可以在本地或你最喜歡的雲上開始開發。

  原文 strongloop.com

相關文章