通常ならStringのreplaceを使うことしか思いつかないのに、たまたまどこかのサイトでsplitとjoinを使って文字列を置換する方法を見ていたのでどっちでやるのがいいのか気になって比べて見ることにした。
replaceを使う:
文字列.replace(/\n/g, "")
split & joinを使う:
文字列.split("\n").join("")
『正規表現って何か遅そうだからsplit&joinを使うほうがクールで速い』が一般論として成り立つんじゃないかと思って性能を測ってみたけど、ブラウザによってまちまちな模様。
手元のパソコンでのテキトーな測定結果(1秒間に何回変換出来たか):
Chrome15 | Opera11 | Firefox7 | IE10 | |
---|---|---|---|---|
split&join | 436753 | 305781 | 304930 | 146187 |
replace | 923907 | 341391 | 271214 | 189233 |
どちらがいいとも言えない結果になってしまった。replace侮りがたし。Orz
一番いいところを取るならreplaceなんだろうな。split&joinが勝ってるケースでは差はあまり大きくないことだし。
それにしてもChrome他のブラウザをぶっちぎって速いな!これを基準にしてると他の環境で実行したときにハマりそうで怖いくらいだ。
あと…ええと…もちろん、一面を評価したに過ぎないですけど…もうちょっと頑張って欲しい>IE
実験
original |
split & join |
replace |
show source
0 件のコメント:
コメントを投稿