私は行区切り文字列でいくつかの作業を行います。どれが高速でしょうか?最初にString.splitを介してテキストを分割し、結果の配列を歩くか、またはreg expを使ってテキスト全体を直接歩き、途中で最後の配列を作成しますか?パフォーマンスに関する質問:String.split、次に配列、またはRegExpを参照してください。
11
A
答えて
12
答えを得る最も良い方法は、2分を取って、何千回も繰り返すループを書くことですファイヤーバグをチェックしてどちらが速いかを確認してください;)
MXHRで作業しているときに、多くの文字列を最適化しなければならなかったし、私の経験上、プレーンなStringメソッドは現在のブラウザのRegExpsよりもはるかに高速です。可能な限り短い文字列でRegExpsを使用し、可能であればStringメソッドでできることはすべて実行してください。
例えば、私は私の現在のコードでは、この小さな番号を使用します。
var mime = mimeAndPayload.shift().split('Content-Type:', 2)[1].split(";", 1)[0].replace(' ', '');
それは地獄のように醜いですが、それを信じるかどうか、それは、高負荷の下で同等の正規表現よりも大幅に高速です。
1
split()を使用するほうがはるかに高速になると思います。これは、多くの仕様、行数と長さ、正規表現の複雑さなどによって異なります。
9
これは後半2年半ですが、うまくいけば、これは将来の視聴者のための問題に関するいくつかの光を当てることができます:http://jsperf.com/split-join-vs-regex-replace(機能ベンチマークコード自体だけでなく、複数のブラウザのベンチマーク結果を含む)に時間を割いて
Firebugによるテストを検討しましたが、JSの時間測定を実際に信頼していませんでした。 ) – BYK
Firebugを信用しない - 日付オブジェクトのいくつかを作成して比較する – annakata
まあ、私はJS Dateオブジェクト自体を信用しませんパフォーマンスを測定しようとしましたが、正確にはミリ秒であると主張していましたが、常に秒の倍数を返していました。これが私がそれを信用しない理由です。 – BYK