Apple の WebKit チームは、Web ブラウザの JavaScript 実行のパフォーマンスをプロファイリングするための改良された新しい SunSpider 1.0 ベンチマーク スイートをリリースし、2007 年末に最初にリリースされた 0.9 バージョンを置き換えました。

サンスパイダーは最初にリリースされたJavaScript エンジンがバランスのとれたさまざまなタスクをどれだけ速く実行できるかを測定することを目的としており、新たな進歩がどれほど効果的であるかをプロファイリングすることを目的としています。

JavaScript は Web のプログラミング言語であり、数値計算や正規表現操作からオブジェクト指向プログラミング タスクに至るまで、さまざまなタスクを処理します。これらのタスクを総合すると、元は単純な Web ブラウザが機能豊富な Web アプリケーションをホストできるプラットフォームに変わりました。

JavaScript は、iOS など、Web ブラウザの外部での対話機能を強化するためにも使用されます。iAd、iBooks で使用されるインタラクティブなウィジェット、および iTunes LP アルバムや DVD のような iTunes Extras などの iTunes での動的コンテンツの開発に使用されるインタラクティブなウィジェットで、映画や関連ボーナス素材のインタラクティブなメニューが含まれます。

アップルの新しいiAd プロデューサー 4.0(下の図) は、3 種類すべての非ブラウザーの JavaScript ベースのコンテンツを開発するためのツールを提供します。

SunSpider 0.9 がリリースされてから 5 年半の間に、それは以上のことを文書化してきました。30倍の改善Safari 3 を実行する 2007 年の典型的な 2.33 GHz コンピュータから、Safari 6 を実行する最新の 2.2GHz i7 MacBook Pro までの JavaScript パフォーマンス。

新しい1.0バージョンリリースされたばかりのこのバージョンは、最新の JavaScript エンジンのより洗練された設計を考慮して、「多くのバグを修正し、テストの精度と再現性をさらに向上させることを目的としています」。

HTML5 を強化する JavaScript エンジンの進捗状況を追跡する

SunSpider ベンチマークが初めて登場した 2007 年当時、JavaScript の実行は、(Web によるリモートではなく) ローカル クライアント側の Web ブラウザ内で基本的な計算を実行する方法として 1995 年に Netscape によって導入されて以来、劇的に変わっていませんでした。サーバ)。

SunSpider の登場後、動的な Web ページにプログラムの洗練性をさらに高めるという強力な新たな取り組みが行われ、JavaScript テクノロジに劇的な新たな飛躍がもたらされました。最初は「Ajax」という用語でした (再描画することなくブラウザ内で更新できる Web ページに関連したもの)。サーバーによる)、HTML5 に関連する「リッチ Web アプリ」の約束との関連性が高まっています (以下も参照)「Apple が HTML 5 に賭ける理由: ウェブの歴史」)。

2008 年、WebKit チームは、オリジナルの JavaScriptCore を「SquirrelFish」という名前のダイレクトディスパッチ レジスタ ベースの高レベル バイトコード仮想マシンとして書き直すことを発表しました。その後、Mozilla は FireFox 用の TraceMonkey エンジンを発表し、Google は Chrome での JavaScript パフォーマンスを高速化するために V8 エンジンを買収しました。

今年が終わる前、そして SquirrelFish が Safari の出荷バージョンになる前に、プロジェクトはさらに強化された「SquirrelFish Extreme」という名前で、バイトコードを生成する代わりに、Just In Time コンパイラーを使用して JavaScript をネイティブ マシン コードに変換し、JavaScript の実行を高速化しました。

2009 年、アップルは適用済み「Nitro」ブランドでの Safari 4 の機能強化では、新しい実装により JavaScript が最大 4.5 倍高速に実行される可能性があると述べています。

翌年、その後も解放されたSafari 5 では SquirrelFish Extreme が新たに強化され、Mac での JavaScript パフォーマンスが以前の Safari 4 に比べてさらに 30 パーセント向上しました。2011 年、同社は iOS 4.3 のモバイル Safari に Nitro を追加し、Apple のモバイル デバイスでの JavaScript パフォーマンスが 200 パーセント向上しました。

1 年前、WebKit が発表しましたさらなる機能強化これは、JavaScriptCore を「三重層仮想マシン」としてレンダリングし、JavaScriptCore がコードの実行を試行するために使用する効率的な新しい LLInt (低レベル インタープリタ) を組み込んでから、バイトコード仮想マシンまたは JIT のいずれかにコードを渡す前にコードを実行します。 In Time コンパイラ) は、ネイティブ マシン コードをオンザフライで構築します。

改良された新しい SunSpider では、最新の JavaScript エンジンにおけるこうした複雑さのレベルが考慮されています。 WebKit の発表で説明されているように、この複雑さのため、「ベンチマークで正確性の検証を実行させるのは理にかなっています。ベンチマークは、適合性テストではできない方法で、JIT の最適化に重点を置くことができます。この観察は、私たち自身の経験から来ています。ベンチマークに検証を加えたので、バグをより早く発見できるようになりました。」

新しい検証チェックに加えて、改訂されたベンチマークでは、ブラウザーが次のテストに進む前にテストの各部分を完了できるようにするために追加された元のバージョンの遅延が解消されます。しかし、高速なハードウェアでは、テスト スイートに組み込まれた遅延によりハードウェアの電源管理機能が作動し、散発的にパフォーマンスが悪いように見せかけるため、これらの遅延により結果が歪み始めました。

HTML5 の将来を賭けて競争する

Apple と Google は、特にデスクトップ ブラウザとモバイル デバイスの両方で HTML5 リッチ アプリを使用できるようにするという目標を掲げて、WebKit の改善に向けて 5 年以上緊密に協力してきましたが、Google が WebKit のフォークを決定したことを受けて、両社は現在、取り組みを分離しています。プロジェクトを作成し、独自の Chromium コードをソロで取得します (現在は「Blink」という名前のプロジェクトの下にあります)。

これにより、Google は Apple の Nitro エンジン (Chrome では使用しない) へのリンクをパージできるようになり、メインの WebKit プロジェクトから同様の Chromium コードのパージが必要になります。これは、Apple の WebKit Web エンジンを使用しているが、現在は Chromium の一部となっている Chromium の V8 JavaScript エンジンと組み合わせている Samsung などのサードパーティに影響を与える可能性があります。

やや皮肉なことに、Google による Apple の WebKit プラットフォームの細分化(プラットフォームの最大の独立ユーザーとして)は、多くの人が Samsung が Google の Android プロジェクトに対して行うことを期待していることと似ており、最終的には Google がプラットフォームを維持し、Samsung が独自のコピーで運営することになり、その足跡をたどります。 Amazonとさまざまな中華フォーク。

同時に、Google は JavaScript を という名前の独自の新しい Web プログラミング言語に置き換えるプロジェクトにも投資しました。ダーツ、この動きにはApple、Mozilla、Microsoftが反対した。

2011年末、Appleのオリバー・ハント氏は、警告された「[Dart のような]非標準言語に対する直接かつ公開されたサポートを追加することは、今後起こる可能性のあるあらゆる形式の「コンセンサス」主導型の言語開発をスキップし、代わりにウェブ上で私たちが望むあらゆる言語を押しつけることになるため、オープンウェブにとって敵対的です。追加の独自の拡張機能をサポートするブラウザを、[Microsoft 独自の] vbscript などをサポートするブラウザと同じ位置に暗黙的に配置し、同じ効果をもたらします。つまり、特定の環境でのみ効果的に機能するコンテンツを作成することで、オープンな Web を破壊します。単品商品です。」

2011 年の Dash との浮気に加えて、Google は Adob​​e Flash を提唱し (Chrome ブラウザに組み込まれている)、H.264 ビデオ標準を脱線させて独自のビデオ標準を支持するよう努めました。ウェブMビデオ コーデック、その他 2 つの取り組みは、iOS が支配するモバイル デバイスの現実によって台無しにされました。 Googleはその後、自社の「Blink」Chromiumフォーク内でDartの採用を推進するつもりはないと述べた。

Apple は来月の Worldwide Developer Conference で、iOS 7 および OS X 10.9 用の WebKit の最新の進歩を組み込んだ Safari の新バージョンを発表すると予想されています。