2011-07-04 10 views
0

私はExpressウェブフレームワークとNode.jsを使用しています。ノードがCPUの100%を使うのはなぜですか?

は、私は、abで簡単なテストをやってる:

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

iが100でCPUをロードすることができますどのように

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

デフォルトエクスプレスのミドルウェアと一つだけのget()を使用しています%、本当に非同期ですか?

は、お客様に

+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");  
}); 

あなたのサンプルアプリケーションに100件の同時リクエストをするためにABを要求すると、ノードが早く、これらの要求を満たすためにしようとしているので、あなたは明らかに、100%のCPU使用率をスパイクするつもりです可能な限り。それが非同期だからといって、それがあなたが言うことをするのと同じくらい難しく働かないというわけではありません。

関連する問題