Maison interface Web js tutoriel Discuter des problèmes de performances des compétences splicing_javascript du tableau de chaînes js

Discuter des problèmes de performances des compétences splicing_javascript du tableau de chaînes js

May 16, 2016 pm 04:34 PM
字符串 性能 拼接 数组

Nous savons qu'en js, la concaténation de chaînes est l'une des opérations les moins performantes.
Par exemple :

Copier le code Le code est le suivant :

var text="Bonjour";
texte = "Monde!";

Les premiers navigateurs n'optimisaient pas cette opération.
Les chaînes étant immuables, cela signifie créer une chaîne intermédiaire pour stocker le résultat de la concaténation. La création et la destruction fréquentes de chaînes en arrière-plan entraînent des performances extrêmement faibles.

Par conséquent, les objets tableau peuvent être utilisés à des fins d'optimisation.
Par exemple :

var buffer=[],i=0; 
buffer[i++]="Hello";  //通过相应索引值添加元素比push方法快 
buffer[i++]=" World!"; 
var text=buffer.join("");
Copier après la connexion

Dans les premiers navigateurs, il n'y avait pas de création ni de destruction de chaînes intermédiaires. Dans le cas d'un grand nombre de concaténations de chaînes, cette technique s'est avérée beaucoup plus rapide que l'utilisation de l'addition.

De nos jours, l'optimisation des chaînes par le navigateur a changé la situation de la concaténation des chaînes. Safari, Opera, Chrome, Firefox et IE8 affichent tous de meilleures performances en utilisant l'opérateur d'addition. Cependant, les versions antérieures à IE8 n'étaient pas optimisées, la méthode tableau fonctionne donc toujours. Cela ne signifie pas que nous devons effectuer une détection du navigateur lors de la concaténation de chaînes. Les éléments à prendre en compte pour décider comment concaténer sont la taille et le nombre de chaînes.

Lorsque la chaîne est relativement petite (moins de 20 caractères) et que le nombre de connexions est également faible (moins de 1000), tous les navigateurs peuvent facilement établir la connexion en moins de 1 milliseconde à l'aide de l'opérateur d'addition. Les performances diminuent considérablement dans IE7 lorsque le nombre ou la taille des chaînes augmente. À mesure que la taille des chaînes augmente, la différence de performances entre les opérateurs d’addition et les techniques de composition de tableaux dans Firefox diminue. À mesure que le nombre de chaînes augmente, la différence de performances entre les opérateurs d’addition et les techniques de composition de tableaux dans Safari diminue. L'opérateur d'addition dans Chrome et Opera reste en avance lors de la modification du nombre ou de la taille des chaînes.

Par conséquent, en raison de performances incohérentes sous différents navigateurs, la technologie choisie dépend de la situation réelle et du navigateur auquel vous êtes confronté.

Dans la plupart des cas, l'opérateur d'addition est préféré ; si l'utilisateur utilise principalement IE6 ou 7 et que la taille de la chaîne est grande ou qu'il y en a plusieurs, alors la technique du tableau en vaut la peine.

De manière générale, s'il s'agit d'une chaîne sémantique, Array ne doit pas être utilisé, comme :
'Bonjour, je m'appelle 'nom;

Si la chaîne est une "répétition de situations similaires", il est recommandé d'utiliser Array, tel que :

var array = []; 
for (i = 0; i < length; i++) { 
array[i] = '<li>' + list[i] + '</li'>; 
} 
document.getElementById('somewhere').innerHTML = array.join('\n');
Copier après la connexion

La comparaison des performances de la connexion au tableau de chaînes js est présentée ici. J'espère qu'elle sera utile à tout le monde.

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

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

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.

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.

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.

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 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.

Les tableaux peuvent-ils être utilisés comme paramètres de fonction ? Les tableaux peuvent-ils être utilisés comme paramètres de fonction ? Jun 04, 2024 pm 04:30 PM

Oui, dans de nombreux langages de programmation, les tableaux peuvent être utilisés comme paramètres de fonction, et la fonction effectuera des opérations sur les données qui y sont stockées. Par exemple, la fonction printArray en C++ peut imprimer les éléments d'un tableau, tandis que la fonction printArray en Python peut parcourir le tableau et imprimer ses éléments. Les modifications apportées au tableau par ces fonctions sont également reflétées dans le tableau d'origine dans la fonction appelante.

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.

See all articles