Méthode rapide pour concaténer les chaînes en nodeJS / JavaScript [dupliquer]
cette question a déjà une réponse ici:
je comprends que faire quelque chose comme
var a = "hello";
a += " world";
il est relativement très lent, comme le fait le navigateur dans O(n)
. Est-il un moyen plus rapide de le faire sans installer de nouvelles bibliothèques?
4 réponses
C'est le moyen le plus rapide connu pour assembler des chaînes en javascript.
pour plus de détails, voir:
pourquoi la concaténation des chaînes est-elle plus rapide que la jonction des réseaux?
JavaScript: Comment joindre / combiner deux tableaux pour concaténer en un tableau?
la question est déjà répondue, cependant quand je l'ai vu pour la première fois j'ai pensé à NodeJS Buffer. Mais il est beaucoup plus lent que le +, de sorte qu'il est probable que rien ne peut être plus rapide que le + dans la concétanation de chaîne.
Testé avec le code suivant:
function a(){
var s = "hello";
var p = "world";
s = s + p;
return s;
}
function b(){
var s = new Buffer("hello");
var p = new Buffer("world");
s = Buffer.concat([s,p]);
return s;
}
var times = 100000;
var t1 = new Date();
for( var i = 0; i < times; i++){
a();
}
var t2 = new Date();
console.log("Normal took: " + (t2-t1) + " ms.");
for ( var i = 0; i < times; i++){
b();
}
var t3 = new Date();
console.log("Buffer took: " + (t3-t2) + " ms.");
sortie:
Normal took: 4 ms.
Buffer took: 458 ms.
il n'y a pas vraiment d'autre moyen dans JavaScript de concaténer les chaînes.
Vous pourriez théoriquement utiliser .concat()
, mais c'est beaucoup plus lent que juste +
sont le plus souvent plus lentes qu'un JavaScript natif, en particulier sur les opérations de base comme la concaténation de chaîne, ou les opérations numériques.
simplement dit: +
est le plus rapide.
vous avez demandé à propos de la performance. Voir ce perf test comparer ' concat', ' + ' et 'join' - en bref l'opérateur + gagne de loin.