对于执行时间的统计,可以利用addBefore记录开始时间,用addAfter记录结束时间。
示例如下:
import { util } from '@kit.ArkTS';
import { systemDateTime } from '@kit.BasicServicesKit';
class Utils {
Add(len: number): number {
let num = 0;
for (let index = 1; index <= len; index++) {
num += index;
}
return num;
}
}
let startTime = 0; // 初始化开始时间
let endTime = 0; // 初始化结束时间
util.Aspect.addBefore(Utils, 'Add', false, () => {
startTime = systemDateTime.getTime(true); // 以纳秒数返回开始时间
})
util.Aspect.addAfter(Utils, 'Add', false, () => {
endTime = systemDateTime.getTime(true); // 以纳秒数返回结束时间
})
let utilsObj = new Utils();
utilsObj.Add(1000);
@Entry
@Component
struct Index {
build() {
Row() {
Column() {
Button('get execution time')
.onClick(() => {
console.log('startTime:', startTime);
console.log('endTime:', endTime);
console.log('endTime - startTime = ', endTime - startTime);
})
}
.width('100%')
}.height('100%')
}
}