予測量的這兩個函數的執行時間:JQuery的grep的(...)VS本地JavaScript濾波器(...)函數性能
已使用Chrome配置文件工具測量了以下方法的執行情況:
// jQuery GREP function
function alternative1(words, wordToTest) {
return $.grep(words, function(word) {
return wordToTest.indexOf(word) != -1;
});
}
// Native javascript FILTER function
function alternative2(words, wordToTest) {
return words.filter(function(word) {
return wordToTest.indexOf(word) != -1;
});
}
words
的數組由一百萬個隨機生成的字符串構成。每種方法運行20次。令我驚訝的是jQuery
grep函數速度更快。
執行時間(20處決):
您可以在此jsFidle repeate次測量 - 執行需要一些時間,所以要耐心等待。
是否有任何的解釋,爲什麼jQuery的grep功能是更快然後本地的JavaScript filter功能?
PS:此問題受此answer的啓發。
尋找解釋?嘗試看看[** grep **的實現](https://github.com/jquery/jquery/blob/master/src/core.js#L712)。至於測試性能,請使用[** JSPerf **](http://jsperf.com/),而不是製作可凍結瀏覽器的腳本。 – Joseph
我把它放到[** jsPerf **中的測試套件中](http://jsperf.com/filterings)。我把它減少到了10萬個元素,即使是'1000'也沒問題 – Alexander
@JosephtheDreamer謝謝你的提示。 – PrimosK