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

 

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年後は? あなたの年収をデータに基づき予報します。

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

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

人気記事

一覧

イチオシ記事

新着記事

Googleお役立ちテクニック - Googleドライブでファイルやフォルダを共有する
[00:00 8/30] パソコン
SMAP、解散発表後『スマスマ』で連携プレー - 中居「タイムリーといえば?」
[23:25 8/29] エンタメ
[魔法少女育成計画]追加キャストに水瀬いのり、日笠陽子、西明日香 姉妹声優が双子役に
[22:26 8/29] ホビー
[ガーリッシュ ナンバー]キービジュアル公開 主人公は可愛くクズな新人声優
[22:23 8/29] ホビー
「黒執事」茶屋や「鬼灯の冷徹」原画展、京まふの詳細が続々と明らかに
[22:18 8/29] ホビー

求人情報