小编Yur*_*kov的帖子

节点js,为什么setTimeout用50ms比setTimeout 0快

我现在是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)

javascript performance node.js

11
推荐指数
1
解决办法
254
查看次数

标签 统计

javascript ×1

node.js ×1

performance ×1