JQuery grep (...) Performances du filtre JavaScript natif (...)

J'ai mesuré le temps d'exécution de ces deux fonctions:

  • jQuery grep fonction
  • JavaScript natif filtre fonction

L'exécution des méthodes suivantes ont été mesurées à l'aide de Profils google Chrome outil:

//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;                    
  });
}

Tableau de words a été construit de 1 millions de dollars générés au hasard des chaînes de caractères. Chaque méthode a été 20 fois. À ma grande surprise, jQuery grep fonction a été plus rapide.

Temps d'exécution (20 environ):

  • jQuery grep fonction 26,31 s
  • JavaScript natif filtre fonction 34,66 s

Vous pouvez répétez measurings sur ce jsFidle - il faudra un certain temps pour exécuter afin d'être patient.

Est il une explication pourquoi jQuery grep fonction est plus rapide que d' natif JavaScript filtre fonction?

PS: Cette question a été inspiré par cette réponse.

source d'informationauteur PrimosK | 2012-12-30