Maison >interface Web >js tutoriel >Analyse des performances JS lors de l'ajout d'éléments aux compétences array_javascript

Analyse des performances JS lors de l'ajout d'éléments aux compétences array_javascript

WBOY
WBOYoriginal
2016-05-16 16:13:02954parcourir

Comparé les performances de 4 façons d'ajouter des éléments à un tableau :

Utilisez l'indexeur pour ajouter

Copier le code Le code est le suivant :

console.time("index");
var a = [];
pour (var i = 0, l = fois; i < l; i ) {
une[je] = je;
>
console.timeEnd("index");

Utiliser la méthode push

Copier le code Le code est le suivant :

console.time("push");
var a = [];
pour (var i = 0, l = fois; i < l; i ) {
a.push(i);
>
console.timeEnd("push");

Utiliser la méthode concat

Copier le code Le code est le suivant :

console.time("concat");
var a = [];
pour (var i = 0, l = fois; i < l; i ) {
a.concat(i);
>
console.timeEnd("concat");

Utilisez la méthode concat, le paramètre est un tableau

Copier le code Le code est le suivant :

console.time("concaténer avec un tableau");
var a = [];
pour (var i = 0, l = fois; i < l; i ) {
a.concat([i]);
>
console.timeEnd("concaténer avec un tableau");

Régler les heures sur 10 000 (dix mille) fois :

Copier le code Le code est le suivant :

indice : 0,310ms
pousser : 1,476 ms
concaténation : 8,911 ms
concaténation avec tableau : 2,261 ms

Régler les heures sur 100 000 (cent mille) fois :

Copier le code Le code est le suivant :

indice : 1,967ms
pousser : 11.980ms
concaténation : 70.410ms
concaténation avec tableau : 28,292 ms

Régler les heures sur 1 000 000 (millions) de fois :

Copier le code Le code est le suivant :

indice : 138,559ms
pousser : 93,074 ms
concaténation : 608,768 ms
concaténation avec tableau : 243,371 ms

Régler les heures sur 1 000 000 (dix millions) de fois :

Copier le code Le code est le suivant :

indice : 1473,733ms
pousser : 611,636 ms
concaténation : 6058,528 ms
concaténation avec tableau : 2431,689 ms

Résumé

Cette conclusion s'applique uniquement au navigateur Chrome

L'efficacité d'exécution de la méthode concat est la plus lente
Par rapport au passage des paramètres des deux méthodes concat, lorsque les paramètres sont acceptés sous forme de tableaux, l'efficacité d'exécution est supérieure à celle lorsque les paramètres sont acceptés comme non-tableaux
Dans la plupart des cas, l'efficacité d'exécution de l'indexeur est supérieure à celle de la méthode push
Lorsque le nombre d'exécutions augmente, l'efficacité d'exécution de l'indexeur commence à être inférieure à la méthode push

Comparaison des navigateurs

Merci à l'internaute d'avoir souligné mon manque d'expérience, j'ajouterai donc ici une comparaison horizontale entre les navigateurs

La première consiste à utiliser la méthode concat. Dans IE et Firefox, si le paramètre est un tableau, l'efficacité d'exécution est plus lente que si le paramètre est un non-tableau, mais la différence n'est pas grande
Ensuite, les méthodes index et push sont nettement plus rapides que concat. Utiliser la méthode index dans IE est toujours plus rapide que push Dans Firefox, push est légèrement meilleur mais la différence n'est pas grande
. En comparant l'efficacité d'exécution des méthodes d'indexation et de push entre les trois navigateurs, la différence est énorme. L'efficacité d'exécution de Firefox est bien supérieure à celle d'IE et de Chrome dans le cas de millions de fois. Par rapport aux autres navigateurs, l'efficacité d'exécution de Firefox est fondamentalement 10 fois plus rapide. Le plus lent des deux
.

Voici les résultats de millions de fois :

Copier le code Le code est le suivant :

//firefox
index : minuterie démarrée
indice : 229,79ms
push : le minuteur a démarré
pousser : 205,12 ms
concat : le minuteur a démarré
concaténation : 2136,99 ms
concaténer avec le tableau : le minuteur a démarré
concaténation avec tableau : 2365,18 ms
```

Copier le code Le code est le suivant :

//c'est à dire
indice : 2 533,744 millisecondes
poussée : 3 865,979 millisecondes
concat : 4 303,139 millisecondes
concaténation avec tableau : 4 792,208 millisecondes

Cet article traite uniquement des performances de JS et approfondit la compréhension de javascript par vos amis grâce à la comparaison. J'espère que vous l'aimerez.

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn