如何通过AOP统计方法执行时间

如何通过AOP统计方法执行时间

HarmonyOS
2024-06-13 23:18:19
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
flyCloud00

对于执行时间的统计,我们可以利用addBefore记录开始时间,而用addAfter记录结束时间。

function addTimePrinter(targetClass: Object, methodName: string, isStatic: boolean, isNanoseconds:boolean) { 
  let t1 = 0; 
  let t2 = 0; 
  util.Aspect.addBefore(targetClass, methodName, isStatic, () => { 
    t1 = systemDateTime.getTime(isNanoseconds); 
  }) 
  util.Aspect.addAfter(targetClass, methodName, isStatic, () => { 
    t2 = systemDateTime.getTime(isNanoseconds); 
    console.log("t2 - t1 = " + (t2 - t1).toString()); 
  }) 
} 
 
class Utils { 
  Add(len:number) :number{ 
    let num = 0; 
    for (let index = 1; index <= len; index++) { 
      num += index 
    } 
    return num 
  } 
} 
 
addTimePrinter(Utils, 'Add', false, true); 
let m = new Utils(); 
m.Add(10000);
分享
微博
QQ
微信
回复
2024-06-14 22:33:27
相关问题
ForEach在真机上无法执行
565浏览 • 1回复 待解决
行时AOP插桩demo测试
433浏览 • 1回复 待解决
Image缓存配置执行时
339浏览 • 1回复 待解决
延迟任务执行时机及运行线程
749浏览 • 1回复 待解决
eTS中如何行时间与字符串转换?
2563浏览 • 1回复 待解决
xComponent组件帧率怎么统计?
241浏览 • 1回复 待解决