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

May 16, 2016 pm 04:13 PM
js 性能 数组

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 de ce site Web
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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comparaison des performances de différents frameworks Java Comparaison des performances de différents frameworks Java Jun 05, 2024 pm 07:14 PM

Comparaison des performances de différents frameworks Java : Traitement des requêtes API REST : Vert.x est le meilleur, avec un taux de requêtes de 2 fois SpringBoot et 3 fois Dropwizard. Requête de base de données : HibernateORM de SpringBoot est meilleur que l'ORM de Vert.x et Dropwizard. Opérations de mise en cache : le client Hazelcast de Vert.x est supérieur aux mécanismes de mise en cache de SpringBoot et Dropwizard. Cadre approprié : choisissez en fonction des exigences de l'application. Vert.x convient aux services Web hautes performances, SpringBoot convient aux applications gourmandes en données et Dropwizard convient à l'architecture de microservices.

Inversion des valeurs clés du tableau PHP : analyse comparative des performances de différentes méthodes Inversion des valeurs clés du tableau PHP : analyse comparative des performances de différentes méthodes May 03, 2024 pm 09:03 PM

La comparaison des performances des méthodes de retournement des valeurs de clé de tableau PHP montre que la fonction array_flip() fonctionne mieux que la boucle for dans les grands tableaux (plus d'un million d'éléments) et prend moins de temps. La méthode de la boucle for consistant à retourner manuellement les valeurs clés prend un temps relativement long.

Application de la fonction de regroupement de tableaux PHP dans le tri des données Application de la fonction de regroupement de tableaux PHP dans le tri des données May 04, 2024 pm 01:03 PM

La fonction array_group_by de PHP peut regrouper des éléments dans un tableau en fonction de clés ou de fonctions de fermeture, renvoyant un tableau associatif où la clé est le nom du groupe et la valeur est un tableau d'éléments appartenant au groupe.

Comment optimiser les performances des programmes multi-thread en C++ ? Comment optimiser les performances des programmes multi-thread en C++ ? Jun 05, 2024 pm 02:04 PM

Les techniques efficaces pour optimiser les performances multithread C++ incluent la limitation du nombre de threads pour éviter les conflits de ressources. Utilisez des verrous mutex légers pour réduire les conflits. Optimisez la portée du verrou et minimisez le temps d’attente. Utilisez des structures de données sans verrouillage pour améliorer la simultanéité. Évitez les attentes occupées et informez les threads de la disponibilité des ressources via des événements.

Le rôle de la fonction de regroupement de tableaux PHP dans la recherche d'éléments en double Le rôle de la fonction de regroupement de tableaux PHP dans la recherche d'éléments en double May 05, 2024 am 09:21 AM

La fonction array_group() de PHP peut être utilisée pour regrouper un tableau par une clé spécifiée afin de rechercher les éléments en double. Cette fonction fonctionne selon les étapes suivantes : Utilisez key_callback pour spécifier la clé de regroupement. Utilisez éventuellement value_callback pour déterminer les valeurs de regroupement. Comptez les éléments regroupés et identifiez les doublons. Par conséquent, la fonction array_group() est très utile pour rechercher et traiter des éléments en double.

Comparaison des performances des frameworks Java Comparaison des performances des frameworks Java Jun 04, 2024 pm 03:56 PM

Selon les benchmarks, pour les petites applications hautes performances, Quarkus (démarrage rapide, mémoire faible) ou Micronaut (TechEmpower excellent) sont des choix idéaux. SpringBoot convient aux grandes applications full-stack, mais a des temps de démarrage et une utilisation de la mémoire légèrement plus lents.

Comparaison des performances du C++ avec d'autres langages Comparaison des performances du C++ avec d'autres langages Jun 01, 2024 pm 10:04 PM

Lors du développement d'applications hautes performances, le C++ surpasse les autres langages, notamment dans les micro-benchmarks. Dans les benchmarks macro, les mécanismes de commodité et d'optimisation d'autres langages tels que Java et C# peuvent mieux fonctionner. Dans des cas pratiques, C++ fonctionne bien dans le traitement d'images, les calculs numériques et le développement de jeux, et son contrôle direct de la gestion de la mémoire et de l'accès au matériel apporte des avantages évidents en termes de performances.

Quelle est la performance des générateurs de nombres aléatoires dans Golang ? Quelle est la performance des générateurs de nombres aléatoires dans Golang ? Jun 01, 2024 pm 09:15 PM

La meilleure façon de générer des nombres aléatoires dans Go dépend du niveau de sécurité requis par votre application. Faible sécurité : utilisez le package math/rand pour générer des nombres pseudo-aléatoires, adaptés à la plupart des applications. Haute sécurité : utilisez le package crypto/rand pour générer des octets aléatoires cryptographiquement sécurisés, adaptés aux applications qui nécessitent un caractère aléatoire plus élevé.

See all articles