是否可以重现基准测试?

时间:2017-03-19 17:50:57

标签: node.js microbenchmark reproducible-research

我需要测试一些节点框架,或者至少测试它们的路由部分。这意味着从请求到达节点进程进行处理,直到确定了路由并且调用了具有业务逻辑的函数/类,例如,在打电话之前。我很努力地寻找合适的方法,但结论是它必须直接在代码中完成,而不是使用外部基准测试工具。我担心测量错误的属性。我尝试过炮兵和ab但他们测量了更多属性然后我想测量,比如RTT,糟糕的操作系统调度,在操作系统中执行的随机任务等等。我使用process.hrtime()的自定义路由代码的初始基准显示约。 0.220毫秒(220微秒)执行时间,但外部测量显示0.700(700微秒),这是不可接受的差异,因为它是3.18倍的额外时间。由于GC或系统任务,执行时间有时会跳至1.x秒。现在我想知道可重现的方法会是什么样子?也许是这样的:

  • 使用Docker和Scientific Linux来获得一个有点受控制的环境。
  • 最小的docker容器安装,仅启用节点的容器,无附加功能。
  • 存储时间会导致全局范围,直到测试完成,然后保存到磁盘。
  • 在主机操作系统上终止所有具有高/中等磁盘IO和/或CPU的应用程序。
  • 如前所述测量时间并交叉手指。

要考虑的其他建议吗?

0 个答案:

没有答案