type
status
date
slug
summary
tags
category
icon
password
fullWidth
fullWidth
TPerfEntry接口
所有的记录分成两类:
mark和measure,都具有方法名Name、调用栈路径Path和时间戳TimestampIPerfMarkEntry具有是否为临时创建的属性IsTemp
IPerfMeasureEntry具有方法占用时长属性Duration
PerfRecorder类
PerfRecorder是一个性能记录器,用于测量代码执行时间,代码易懂就不再赘述:perfTiming属性装饰器
PropertyDescriptor是JavaScript/TypeScript中的一个内置接口,用于描述和操作对象属性的特性:在TypeScript中,方法装饰器的参数是固定的格式(方法所属的类的原型对象、方法名和方法的属性描述符),可以在官方文档中找到:
关于TypeScript装饰器的知识,可以参考:
perfTiming是一个方法装饰器,自动为类方法添加性能监控:CallerLocation获取调用位置
创建一个错误对象
Error,利用JavaScript堆栈追踪机制得到错误堆栈,传入的stackIndex要加1,因为getCallerLocation为异常发生堆栈,要略过:在
EndMeasure()里调用Measure(),调用栈深度callbackDepth默认为2,因为:而在装饰器函数中调用
EndMeasure(),调用栈深度callbackDepth应该改为3,因为:- Author:Yuki
- URL:http://shirakoko.xyz/article/perftiming
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!
Relate Posts









