如何测量npm / yarn任务/脚本的执行时间?

时间:2017-04-18 13:54:11

标签: time npm task measure yarnpkg

如何在不修改脚本的情况下在命令行上测量npm / yarn任务的执行时间。

在我的特殊用例中,我想要执行现有的E2E-Tes​​t(纱线测试:e2e)100次并取平均值。

3 个答案:

答案 0 :(得分:5)

使用gnomon

命令行实用程序,有点像moreutils的ts,用于将时间戳信息添加到另一个命令的标准输出。

答案 1 :(得分:3)

在Unix中使用以下命令

time npm run build

对于Windows,请使用此命令

Measure-Command { start-process npm 'run build' -wait}

答案 2 :(得分:0)

如果您对此不希望有任何全局或局部依赖关系,或者您不希望某些东西只能在unixy操作系统上运行,则可以使用简单的.js文件和同样简单的npm脚本轻松实现这一点完善:

{
  ...
  "scripts: {
    "time": "node mark.js",
    "start": "npm run time && ...whatever 'start' was before... && npm run time",
  },
  ...
}

mark.js文件几乎是以下琐碎的代码:

const fs = require("fs"); // or import fs from "fs"; if you're working on modern JS

const timingFile = `.timing`;

if(fs.existsSync(timingFile)) {
  const end = Date.now();
  const start = fs.readFileSync(timingFile);
  fs.unlinkSync(timingFile);
  console.log(`Runtime: ${(end - start)/1000}s`);
} else { fs.writeFileSync(timingFile, `${Date.now()}`, `utf8`); }