TypeScript Decoratorを使った計測
TypeScript 5.0で新しいDecoratorが追加された。
※今回追加されたものはECMAScriptの仕様に則ったもので、TypeScriptに前からあったDecoratorはLegacy Decoratorとして区別される
Decoratorでパフォーマンスの計測をする
function measure(target: any, context: ClassMethodDecoratorContext) {
function _measure(this: any, ...args: any[]) {
const label = String(context.name)
console.time(label)
const result = target.call(this, args)
console.timeEnd(label)
return result
}
return _measure
}
class MyClass {
@measure
add(x: number, y: number) {
return x + y
}
@measure
subtract(x: number, y: number) {
return x - y
}
}
const cls = new MyClass()
cls.add(1,2)
cls.subtract(1,2)
add: 0.024169921875 ms
subtract: 0.01318359375 ms