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

このエントリーをはてなブックマークに追加
follow us in feedly


関連タグ JavaScript / Web技術



タグクラウド(β版)

クラウド / AWS / Azure / Google Cloud
コンテナ / Docker / Kubernetes
クラウドネイティブ / サーバレス
クラウド障害 / 運用・監視

プログラミング言語 / 開発ツール
JavaScript / Java / .NET / WebAssembly
HTML/CSS / Web標準
アジャイル開発 / スクラム / DevOps / CI/CD
ソフトウェアテスト・品質
ローコード/ノーコード開発

データベース / RDB / NoSQL / 機械学習・AI
Oracle Database / MySQL / PostgreSQL
Office / 業務アプリケーション

ネットワーク / HTTP / QUIC / セキュリティ
OS / Windows / Linux / VMware
ハードウェア / サーバ / ストレージ

業界動向 / 働き方 / 給与・年収
編集後記 / 殿堂入り / おもしろ

全てのタグを見る

Blogger in Chief

photo of jniino

Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。2009年にPublickeyを開始しました。
詳しいプロフィール

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


最新記事10本