我可以在Chrome Profiler中分隔函数调用吗?

时间:2018-03-31 12:57:09

标签: google-chrome-devtools aop profiler method-overriding

我创建了一个在另一个Javascript程序上执行AOP的库。我正在采取的程序如下:

var func_name = func.name.toString();

//new function with the name of original function
window[func_name] = function(){
      ...
      JSLibrary.returnValue = func.apply(this, arguments);
      ...
      return JSLibrary.returnValue
}

该过程通过在调用原始函数之前和之后执行附加代码的函数来覆盖所需的函数。

我想对程序进行分析,以便我可以测量我的库的时间,然后比较结果。当我使用Chrome分析程序并在Call Tree下查看时,我可以看到上面的新函数实际上被调用了,它被称为window.(anonymous function)(没有错,因为我知道我的一些函数被覆盖)。但是在某些情况下,如下面的那个,分析器将覆盖函数分组在一个匿名函数下(尽管它们被单独调用)并且时间表示覆盖函数的所有时间加起来,因为这样我无法测量时间每个功能。

enter image description here

换句话说,我想问一下是否有办法让探查器在以下结构中显示被调用函数:

validateRegistration
  window.(anonymous function)
    registerNewAccount
  window.(anonymous function)
    (anonymous)
  window.(anonymous function)
    checkPasswordConfirmation
  window.(anonymous function)
    checkChosenQuestion
  window.(anonymous function)
    (anonymous)

1 个答案:

答案 0 :(得分:0)

我设法实现了这个目标,我走过了时间轴,找到了分离的被叫函数及其时间。