我想对在 TypeScript 上编写的网站上的一些关键功能进行性能测量。我想知道 TypeScript 中是否有类似于.NET System.Diagnostics.Stopwatch
类的秒表的实现?
答案 0 :(得分:2)
我有一个简单的实现here:
/**
* Simple timer
*/
export function timer() {
let timeStart = new Date().getTime();
return {
/** <integer>s e.g 2s etc. */
get seconds() {
const seconds = Math.ceil((new Date().getTime() - timeStart) / 1000) + 's';
return seconds;
},
/** Milliseconds e.g. 2000ms etc. */
get ms() {
const ms = (new Date().getTime() - timeStart) + 'ms';
return ms;
}
}
}
用法
const howLong = timer();
// do some stuff
console.log(howLong.ms);
还有很多其他实现,以及你可以看到的内置console.time
函数。
答案 1 :(得分:0)
基于上述basarat's的答案,它已经内置在控制台中。
console.time('myTask');
// code to time here
console.timeEnd('myTask');
console.timeLog('myTask');
答案 2 :(得分:0)
此秒表用typescript
编写,并带有类型定义。
https://github.com/vcfvct/stopwatch-node
答案 3 :(得分:0)
由于 OP 专门要求类似于 .NET 的秒表的东西,@tsdotnet/stopwatch
包可能是一个不错的选择。
首先,在您的 npm
项目中安装软件包:npm i @tsdotnet/stopwatch
代码示例:
import Stopwatch from "@tsdotnet/stopwatch"
(async () => {
const stopwatch = Stopwatch.startNew();
// Simulates a delay of 1000 milliseconds.
await new Promise(r => setTimeout(r, 1000));
console.log(stopwatch.elapsedMilliseconds);
})();
请注意,由于在此示例中使用了 promise,您的 tsconfig.json
需要至少定位到 es2015
。由于 @tsdotnet/stopwatch
,这不是必需的。