javascript - 基准异步代码 (Benchmark.js, Node.js)

标签 javascript node.js asynchronous benchmark.js

我想使用 Benchmark.js模块来测试一些用 node.js 编写的异步代码。具体来说,我想向两台服务器(一台用 Node 编写,一台用 PHP 编写)发出约 10,000 个请求,并跟踪每台服务器完成所有请求所需的时间。

我计划使用 Benchmark 编写一个简单的 Node 脚本来触发这些请求,但我对如何将它与异步代码一起使用感到有点困惑。通常在 Node 模块中,当您的异步代码完成时,或者从函数返回 Promise 等时,您会调用某种回调。但是对于 Benchmark,从我在文档中阅读的所有内容来看,它似乎并不完全处理异步。

有谁知道我应该做什么或看什么?如果需要,我可以手动编写基准测试;这似乎是一个足够常见的用例,Benchmark 或其他公司可能已经在他们的专业级测试库中实现了它。

感谢任何方向, 〜内特

最佳答案

它没有很好的文档记录,但这是一个 PoC:

var Benchmark = require('benchmark');
var suite     = new Benchmark.Suite();

suite.add(new Benchmark('foo', {
  // a flag to indicate the benchmark is deferred
  defer : true,

  // benchmark test function
  fn : function(deferred) {
    setTimeout(function() {
      deferred.resolve();
    }, 200);
  }
})).on('complete', function() {
  console.log(this[0].stats);
}).run();

Benchmark.js v2 稍微改变了语法:

var Benchmark = require('benchmark');
var suite = new Benchmark.Suite;

suite.add('foo', {
  defer: true,
  fn: function (deferred) {
    setTimeout(function() {
      deferred.resolve();
    }, 200);
  }
}).on('complete', function () {
  console.log(this[0].stats)
}).run()

关于javascript - 基准异步代码 (Benchmark.js, Node.js),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31624055/

相关文章:

javascript - 未捕获的类型错误 : Cannot read property 'ref' of undefined

javascript - 如何将获取响应转换为数组缓冲区?

javascript - webpack 构建错误 TypeError : Converting circular structure to JSON

wordpress - 使用node-http-proxy时隐藏WordPress URL中的端口号

c# - 为什么在控制台应用程序中使用 async/await 时需要 AsyncContext?

javascript - 数据库查询功能未异步运行

javascript - 使用 php 不使用 jQuery 进行 Ajax 表单验证

javascript - VueJS 通过挂载的事件监听器监听组合键

node.js - 如何在nodejs中通过同一个表单传递两个不同的参数

javascript - Angular 异步函数返回未定义而不是 Promise