JavaScript文字列処理は"+="が十分高速、Safariもベター

後藤大地  [2008/05/12]

1秒でも早く動く快適なWebアプリケーションを開発することはフロントエンドプログラマやWebデベロッパが常に追い求めるところだが、SitePenにおいてTom Trenka氏による興味深い分析結果"String Performance: an Analysis"が公開されたので紹介しておきたい。同氏のドキュメントはテクニック的に参考になるものだ。

文字列処理はパフォーマンスを左右する重要な要素のひとつだ。Javaなどよく使われるプログラミング言語では文字列は変更不可能なオブジェクトとして扱われる。変更不可能にすることで文字列の重複を防ぎ、不要なデータのコピーを避けることで処理速度の向上が実現できるからだ。そのかわり文字列を編集する場合には、変更後の文字列を新しく生成するという手段をとる。このため文字列の編集という操作は新しく文字列を生成する操作と等価であるため、コストが高い処理になる。

そこで使われるのが、編集を主におこなう場合は文字列を使うのではなく、文字配列を使って処理をおこない、必要になった時点で配列から文字列を生成する方法だ。変更不可能文字列オブジェクトの利点を保ちつつ、文字列の編集コストも下げることになるというテクニックである。

JavaScriptの文字列も基本的に変更不可能だ。このため同じ規則が当てはまりそうだが、Tom Trenka氏が公開しているベンチマーク結果によれば、その法則はかならずしもJavaScriptには当てはまらないようだ。いくつかの例外はあるものの、文字列のメソッドを使うよりも"+="が良好に動く。それぞれのブラウザに実装されているネイティブな文字列処理が十分に最適化されているため、配列を使った方が高速な場合もあるが"+="が十分に最適化されているようにみえる。

比較されているなかではSafariがきわめて良好な結果を出している点も注目されるところだ。またブラウザごとに例外がいくつかあり、より高速な処理方法や特定の処理内容が遅くなるものもある。"String Performance: an Analysis"にはそうした内容をまとまっているため、JavaScriptプログラミングをおこなっている場合にはブックマークしておきたい。



転職ノウハウ

あなたが本領発揮できる仕事を診断
あなたの仕事適性診断

シゴト性格・弱点が20の質問でサクッと分かる!

「仕事辞めたい……」その理由は?
「仕事辞めたい……」その理由は?

71%の人が仕事を辞めたいと思った経験あり。その理由と対処法は?

3年後の年収どうなる? 年収予報
3年後の年収どうなる? 年収予報

今の年収は適正? 3年後は? あなたの年収をデータに基づき予報します。

激務な職場を辞めたいが、美女が邪魔して辞められない
激務な職場を辞めたいが、美女が邪魔して辞められない

美人上司と可愛い過ぎる後輩に挟まれるエンジニアの悩み

特別企画 PR

人気記事

一覧

イチオシ記事

新着記事

【連載】週刊「赤子しぐさ」 第9回 見事な開きっぷり! 「ころがり開脚」
[10:00 5/5] ライフスタイル
[CM]あの美少女は誰? “岡山の奇跡”や“名門”の新人も
[09:00 5/5] エンタメ
【ハウツー】Facobookに連絡先をアップしてしまった場合の対処法 - 愛と人生のセキュリティ対策ナビ
[09:00 5/5] 携帯
【コラム】鉄道ニュース・ローカル 第5回 長良川鉄道「ながら」水戸岡デザインの観光列車デビュー
[08:08 5/5] ホビー
【連載】ゼロから始める重曹掃除 第9回 5年放置の世紀末魚焼きグリルに、手作りの"重曹クリームクレンザー"で挑む!
[08:00 5/5] ライフスタイル

特別企画 PR

求人情報