2011-07-04 47 views
0

我使用Express web框架和Node.js。爲什麼節點使用100%的CPU?

我做一個簡單的測試與AB:

ab -n 1000 -c 100 http://127.0.0.1:3000/ 

我使用快遞)默認的中間件,只有一個GET(

app.get('/', function(req, res){ 
    res.send("hello");  
}); 

如何能在100加載CPU %,是不是真的異步?

THANK YOU

+1

你要求它儘可能快地抽出你好。你好世界計劃是處理器有限的。它使處理器達到極限。 – generalhenry

回答

3

僅僅因爲一些是異步的,並不意味着它是不能使用所有可用的處理資源。讓我們來看看你的樣品服務器:

// when you get a request for "/", perform the 
// following function as quickly as you can. 
app.get('/', function(req, res) { 

    // this is the function to perform. It is CPU 
    // bound when serving a client *on the same machine*. 
    res.send("hello");  
}); 

當您要求AB,使100個併發請求您的示例應用程序,你顯然會秒殺100%的CPU使用率,因爲節點試圖以最快的速度滿足這些請求儘可能。僅僅因爲它是異步的,並不意味着它不會像你告訴它那樣努力工作。