2015-02-24 25 views
2

还有一个与Javascript分析相关的问题。 是的,我知道有很多与JavaScript代码分析相关的问题,相信我已经经历了很多。但我并不是在讨论任何分析工具。我只是想为自己实施一个小型分析脚本,只是为了帮助我了解。Javascript中的自动执行功能用于分析实现

我想为javascript写一个简单的虚拟分析代码,但无法弄清楚开始的方式。我真正想要的是类似的功能,例如PHP中的declare tick函数,它每次遇到任何在PHP中编写分析代码时非常有用的语句都会自动执行。

是否有任何类似于Javascript声明的函数,以便我可以实现这些函数来使用这些函数来剖析我的代码performance.now()performance.memory等。我不想用这种方法。

var a = performance.now(); 
// do your stuffs 
var b = performance.now(); 
console.log('It took ' + (b - a) + ' ms.'); 

我不认为这是切实可行的方法。不想将分析代码注入我的生产脚本中。

我想要的是在我的脚本上运行分析代码,以便每次遇到生产脚本函数时都自动执行。或者你们能否启发更好的开始?

P.S.我不是在谈论使用不同的浏览器分析工具,而是讨论如何编写基本分析工具的小信息,该工具将在遇到javascript语句或函数时自动触发。

+0

[控制台功能](https://developer.mozilla.org/en-US/docs/Web/API/Console)将帮助您从...开始...它有许多工具来调试,配置文件,测试,计时......当然,这是一个开始,但如果你发现“它们是如何工作的”,我认为你将朝着你的目标走向正确的方向。 – gmo 2015-02-24 08:40:38

回答

-2
+0

请仔细阅读这个问题。我不是在谈论使用分析工具。我正在谈论根据我的知识构建基本分析工具的方式。 – 2015-02-24 08:23:41

3

也许AOP库的JavaScript像meld会帮助你吗?

例如:

var timeTook; 

var myObject = { 
    doSomething: function(a, b) { 
     return a + b; 
    } 
}; 

function beforeFunction() { 
    timeTook = performance.now(); 
} 

function afterFunction() { 
    console.log("It took " + (performance.now() - timeTook)); 
} 

meld.before(myObject, 'doSomething', beforeFunction); 
meld.after(myObject, 'doSomething', afterFunction); 

另请参见this question在SO。

1

AOP是一个很好的。但更多的是出于交叉问题而不是剖析。不同之处在于,即使在生产代码中也存在AOP,其中分析代码不必在生产代码中。您应该将它集成到您​​的测试环境中。

与分析器集成将会更加方便。理想的分析器会测试你的代码,所以你不必包装每一个函数。 spy-js是一个很好的图书馆。