如何在不修改脚本的情况下在命令行上测量npm / yarn任务的执行时间。
在我的特殊用例中,我想要执行现有的E2E-Test(纱线测试:e2e)100次并取平均值。
答案 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`); }