Time 如何衡量npm/纱线任务/脚本的执行时间?
在不修改脚本的情况下,如何在命令行上测量npm/Thread任务的执行时间Time 如何衡量npm/纱线任务/脚本的执行时间?,time,npm,task,measure,yarnpkg,Time,Npm,Task,Measure,Yarnpkg,在不修改脚本的情况下,如何在命令行上测量npm/Thread任务的执行时间 在我的特殊用例中,我希望执行现有的E2E测试(纱线测试:E2E)100次,并取平均值。您可以使用npm包: 一个命令行实用程序,有点像moreutils的ts,用于将时间戳信息预先添加到另一个命令的标准输出中 按如下方式安装: $ npm i -g gnomon $ yarn install | gnomon 0.5327s yarn install v1.9.4 1.9652s [1/4] Re
在我的特殊用例中,我希望执行现有的E2E测试(纱线测试:E2E)100次,并取平均值。您可以使用npm包: 一个命令行实用程序,有点像moreutils的ts,用于将时间戳信息预先添加到另一个命令的标准输出中 按如下方式安装:
$ npm i -g gnomon
$ yarn install | gnomon
0.5327s yarn install v1.9.4
1.9652s [1/4] Resolving packages...
0.0160s success Already up-to-date.
0.0163s Done in 2.38s.
0.0003s
Total 2.5315s
有了它,您可以运行:
$ yarn install | gnomon
它可能会为您提供如下输出:
$ npm i -g gnomon
$ yarn install | gnomon
0.5327s yarn install v1.9.4
1.9652s [1/4] Resolving packages...
0.0160s success Already up-to-date.
0.0163s Done in 2.38s.
0.0003s
Total 2.5315s
如果您不希望对此有任何全局或甚至本地依赖关系,或者您不希望只在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`); }
在unix中使用以下命令
time npm run build
对于windows,请使用此命令
Measure-Command { start-process npm 'run build' -wait}
是什么意思?
是Unix的管道操作符,这里的详细信息:注意:特定于powershell,这意味着任何使用cmd
实现最大跨平台兼容性的人仍然没有解决方案(cmd
支持&
,例如,在节点脚本的世界中是必不可少的)