次のようなことをしていることを理解しています
var a = "hello";
a += " world";
ブラウザが で行うため、比較的非常に低速ですO(n)
。新しいライブラリをインストールせずにこれを行うより速い方法はありますか?
次のようなことをしていることを理解しています
var a = "hello";
a += " world";
ブラウザが で行うため、比較的非常に低速ですO(n)
。新しいライブラリをインストールせずにこれを行うより速い方法はありますか?
質問はすでに答えられていますが、私が最初にそれを見たとき、私はNodeJSバッファについて考えました。しかし、それは+よりもはるかに遅いので、文字列の包含において+より速くなるものはない可能性があります。
次のコードでテストされています。
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.");
出力:
Normal took: 4 ms.
Buffer took: 458 ms.