我现在是Node.js开发人员一年了.昨晚我以为我会在express和http模块之间做一个基准测试,基本上它是一个简单的promise,返回一个字符串并传递给响应,现在我看到http速度相当快,但我遇到了另一个问题如果我setTimeout在ab测试中设置为50毫秒,并发500和100000请求,响应时间比setTimeout0或快两倍process.nextTick.
现在我知道setTimeout将它带到下一个循环,但是在队列结束时,nextTick将它放在下一个循环的第一位,但我真的不明白为什么setTimeout50ms比setTimeout0 快.即使没有setTimeout,ab测试也要慢很多比setTimeout 50ms.
我怀疑它是apache ab测试的东西,或者我错过了节点的东西?
http.createServer((req,res)=>{
setTimeout(()=>{
check().then(data=>{
res.write(data);
res.end();
})
},0)
}).listen(3000);
let check = () =>{
return Promise.try(()=>{
return 'done with Async'
})
};
Run Code Online (Sandbox Code Playgroud)
// setTimeout 0 times with ab test
Concurrency Level: 500
Time taken for tests: 53.824 seconds
Complete requests: 100000
Failed requests: 0
Total transferred: 9000000 bytes
HTML transferred: 1500000 bytes
Requests per second: 1857.90 [#/sec] (mean)
Time per request: …Run Code Online (Sandbox Code Playgroud)