2011-06-22 95 views
2

我沒有比較nodejs和java之間的響應時間性能。nodejs響應時間性能

測試環境: 操作系統:Ubuntu的10.10 服務器:Openfire的3.7 兩個服務器組件使用的NodeJS(0.4.8)和Java(捶API)

測試場景比較寫着: 併發用戶數發送XMPP消息到服務器和服務器組件的數量正在回覆到隨機選擇的客戶端。正在計算達到響應的總時間。

測試結果:
java和nodejs的響應時間保持不變,直到服務器負載增加,從而增加每個客戶端的消息數量。據觀察,當每個客戶端每秒消息數增加到5000到10000時,Nodejs似乎處於較慢的一側。

原因: 我試圖找出導致Nodejs性能低下的原因負載但無法找到任何結論。我發現的是,由於Nodejs是單線程進程,並且在同一線程中執行讀取和寫入操作,所以當負載增加時,I/O寫入會變得更慢

請解釋一下可能是什麼原因呢?如果您需要更多信息,我將很樂意提供。我也有測試數據並從這些數據生成圖表。

感謝 最好的問候, 拳王阿里

+1

提供有關您的基準測試的信息。提供有關處理器的信息。你使用'cluster'嗎? – Raynos

回答

0

讀取和寫入數據未綁定到一個線程,實際上它是使用一些庫,這將使異步工作。只有

你的代碼是在單個線程

也許與V8垃圾收集,你很難面對的問題告訴運行。或者,正如Raynos所指出的那樣,用於告訴庫寫入套接字(而不是真正發送)的代碼受單核限制,因此它要求節點向所有收件人發送數據的速度很慢。

0

如果你有多個CPU,那麼Node.js將只利用其中的一個。

試着讓你的測試非常平行,然後看看哪個更好。這就是node.js應該閃耀的地方。