Gij*_*ijs 15 javascript jquery profiling
当然,Firebug,Chrome的Web Inspector,Opera的Dragonfly和dynaTrace用于IE的AJAX工具都具有分析功能.但是,我还没有找到一个让我"忽略"图书馆的工具.
举个例子,假设我有以下纯JS/DOM代码:
function foo(node) {
for (var i = 0; i < node.childNodes.length; i++) {
node.childNodes[i].innerHTML = 'Test';
}
}
Run Code Online (Sandbox Code Playgroud)
以及使用jQuery的类似代码:
function bar(jqNode) {
jqNode.children().each(function() {
$(this).html('Test');
});
}
Run Code Online (Sandbox Code Playgroud)
(例子不是很好的代码,请保留它们,因为这不是重点)
如果你通过JS分析器抛出两个,你会发现在第一个例子中,只有一个函数,其中函数的"自己的时间"等于函数中花费的"总时间" - 因为DOM操作被计为'自己的时间'.
然而,在jQuery示例中,所有这些都被抽象为jQuery,这意味着"自己的时间"是最小的,并且所有时间都花在了jQuery上.
这使得它很难找到性能瓶颈,因为最高的"自己的时间"的功能jQuery.fix和jQuery.init等(不告诉我任何事情写得很好,如何(或没有)我的代码),并与职能最长的'总时间'通常在调用堆栈中过高,以找出实际问题的位置(如果你有一个函数调用其他10个,一个函数'永远',调用函数将有更大'总时间' '但这不会让你弄清楚哪个被调用的函数花费的时间最长').