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

2010年3月23日はてなブックマーク del.icio.us Twitter
タグ : JavaScript

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の遅さをいかに解決していくのか、それぞれの技術を投入してしのぎを削っているわけですね。


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

Loading...

Blogger in Chief

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


Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
RSSリーダーで : Feed
≫ 過去の記事を読む




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

  1. 次の10年、「統計分析」こそテクノロジー分野…
  2. シリコンバレーでFlashプログラマの給与が…
  3. アジャイル開発の現在・過去・未来 - Pub…
  4. 「Google JavaScript Sty…
  5. NoSQLについて知っておくべき10の事柄 …
  6. 米国で求められているクラウドのスキルは? A…
  7. 書籍「Googleクラウドの核心」、いずれク…
  8. アジャイル開発でソフトウェアの品質を高める方…
  9. その分析、Hadoopなら速く安くできます …
  10. デスクトップ仮想化、シトリックスCEOに10…
  11. マイクロソフトのクラウドサービス「Micro…
  12. グーグルが構築した大規模システムの現実、そし…
  13. アドビ「iPadでFlashアプリを動かす」…
  14. フリーソフトウェア財団がオラクルを非難。オラ…

アーカイブ  (最新記事10)

バックナンバー

2010年9月
2010年8月
2010年7月
2010年6月
2010年5月
2010年4月
2010年3月
2010年2月
2010年1月
2009年12月
2009年11月
2009年10月
2009年9月
2009年8月
2009年7月
2009年6月
2009年5月
2009年4月
2009年3月
2009年2月






Trackbacks (TrackbackURL:http://www.publickey1.jp/mt/mt-tb.cgi/1031)

  • (トラックバックは承認後に掲載されます)

Comments