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

ニュース
トップ

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プログラミングをおこなっている場合にはブックマークしておきたい。

関連したタグ
    

    マイナビニュースのセミナー情報

    オススメ記事

    マイナビニュースの集合特集

    関連サイト

    新着記事

    転職ノウハウ

    あなたの仕事適性診断
    あなたの仕事適性診断

    4つの診断で、自分の適性を見つめなおそう!

    Heroes File ~挑戦者たち~
    Heroes File ~挑戦者たち~

    働くこと・挑戦し続けることへの思いを綴ったインタビュー

    はじめての転職診断
    はじめての転職診断

    あなたにピッタリのアドバイスを読むことができます。

    転職Q&A
    転職Q&A

    転職に必要な情報が収集できます

    ドS美人面接官 vs モテたいエンジニア
    ドS美人面接官 vs モテたいエンジニア

    入室しようとしたら、マサカリ投げられちゃいました!?

    特別企画

    一覧

      人気記事

      一覧

      イチオシ記事

      新着記事

      特別企画

      一覧

        求人情報