JavaScriptが遅い4つの原因とは?

2010年3月23日

1つ前の記事「JavaScriptをいかに高速化するか、IE9、Firefoxの取り組み」では、IE9とFirefoxにおけるJavaScriptの高速化について紹介しましたが、そもそもJavaScriptの実行速度はなぜ遅いのでしょう?

その理由について、Mozilla Japanテクニカルマーケティング担当の浅井智也氏が、スライド「Trace Monkey」でポイントをまとめています(このスライドはタイトルから分かるとおり、Firefoxの当時の新しいJavaScriptエンジン「Trace Monkey」を紹介するために1年以上前に作成されたスライドですが、1つ前の記事を見ると、ここで示された課題はいまも変わっていないようです)。

全67枚のスライドの20枚目から24枚目の5枚を以下に紹介します。

fig

JavaScriptが遅い原因は、以下の4点にまとめられています。

それぞれについて詳しく解説されています。

fig

インタープリタ型言語がそれほど速くないのはみなさんよくご存じのことでしょう。そのために最近ではネイティブコードへの変換による高速化の手法がよく見られます。

fig

動的型付けはJavaScriptの特徴の1つですが、そのために実行時に頻繁に型チェックと型変換を行わなければならないことが、実行速度を遅くしている原因の1つとのこと。

fig

クラスが存在せず、オブジェクトの構造が決まっていないこと、プロパティへのアクセスにハッシュ計算が必要なことが要因として挙げられています。

fig

そして最後の理由は配列が存在しないこと。オブジェクトの一種として配列があるため、1つ前の「クラスが存在しない」で挙げられた理由と同じように、プロパティへのアクセスがボトルネックとなっているようです。

モジラをはじめ、アップル、グーグル、オペラ、そしてマイクロソフトといったWebブラウザベンダは、こうした原因によるJavaScriptの遅さをいかに解決していくのか、それぞれの技術を投入してしのぎを削っているわけですね。


このエントリーをはてなブックマークに追加 Bookmark this on Delicious     fig Follow Me  fig RSS

タグ : JavaScript

次の記事
Scala言語を学ぶやさしいツール「Kojo」が無償公開
前の記事
JavaScriptをいかに高速化するか、IE9、Firefoxの取り組み

Loading...

Blogger in Chief

photo of jniino Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。新しいオンラインメディアの可能性を追求しています。
詳しいプロフィール


Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
RSSリーダーで : Feed





アクセスランキング - 過去7日間

  1. 特許庁の基幹システムはなぜ失敗したのか。元内…
  2. マイクロソフトの責任者が語る「われわれはどの…
  3. 特許庁の基幹システム失敗の背景にある、日本に…
  4. みんなはどんなテスト技法を使っているの? J…
  5. ソフトウェアテストの30年前と30年後(前編…
  6. マイクロソフトでは「開発プロセスのすべてにテ…
  7. ソフトウェアテストの30年前と30年後(後編…
  8. セールスフォース社長がつぶやいたエコポイント…
  9. 「絶対落ちないシステムを作れ」という要件に、…
  10. 客が本気にならないといいシステムができない。…
  11. HTTP 2.0はグーグルのSPDYがベース…
  12. ソフトウェアテストの近未来を話そう(前編)~…
  13. ソフトウェアテストの近未来を話そう(後編)~…
  14. グーグルはあれほど多くのソフトウェアのテスト…
  15. 電子書籍フォーマットの本命、「EPUB」をい…

最新記事 10本

バックナンバー



アルファブロガー・アワード2010受賞 Publickeyはアルファブロガー・アワード 2010を受賞しました! いつもご愛読ありがとうございます。









blog comments powered by Disqus