Fast way to concatenate strings in nodeJS/JavaScript

JavascriptStringnode.jsConcatenation

Javascript Problem Overview


I understand that doing something like

var a = "hello";
a += " world";

It is relatively very slow, as the browser does that in O(n) . Is there a faster way of doing so without installing new libraries?

Javascript Solutions


Solution 1 - Javascript

The question is already answered, however when I first saw it I thought of NodeJS Buffer. But it is way slower than the +, so it is likely that nothing can be faster than + in string concetanation.

Tested with the following code:

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.");

Output:

Normal took: 4 ms.
Buffer took: 458 ms.

Solution 2 - Javascript

There is not really any other way in JavaScript to concatenate strings.
You could theoretically use .concat(), but that's way slower than just +

Libraries are more often than not slower than native JavaScript, especially on basic operations like string concatenation, or numerical operations.

Simply put: + is the fastest.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionYotamView Question on Stackoverflow
Solution 1 - JavascriptMustafaView Answer on Stackoverflow
Solution 2 - JavascriptCerbrusView Answer on Stackoverflow