メインコンテンツまでスキップ

Ignitionインタープリタを起動

· 約5分
Ross McIlroy, V8 Ignitionジャンプスターター

V8およびその他の最新のJavaScriptエンジンは、ジャストインタイム(JIT)コンパイルによって、スクリプトをネイティブマシンコードに即時コンパイルし、実行前に高速化を図っています。コードはまずベースラインコンパイラによって初期的にコンパイルされ、非最適化されたマシンコードを迅速に生成できます。その後、実行時にコードを分析し、必要に応じてより高度な最適化コンパイラで動的に再コンパイルされ、性能を最大化します。V8では、このスクリプト実行パイプラインにおいて、ベースラインコンパイラと2つの最適化コンパイラ(CrankshaftとTurboFan)の間を切り替える複雑な仕組みが存在します。

BlinkOn 6会議でのV8

· 約3分
V8チーム

BlinkOnは、Blink、V8、Chromiumの貢献者による年2回開催されるミーティングです。BlinkOn 6は6月16日と17日にミュンヘンで開催されました。V8チームはアーキテクチャ、デザイン、パフォーマンスの取り組み、言語実装に関する数々のプレゼンテーションを行いました。

V8 リリース v5.3

· 約4分
V8 チーム

約6週間ごとに、新しいV8のブランチを作成します(リリースプロセスの一環)。各バージョンは、Chromeがベータ版のマイルストーンに向けてブランチされる直前にV8のGitマスターからブランチされます。本日、最新のブランチであるV8 バージョン 5.3を発表できることを嬉しく思います。このバージョンはChrome 53安定版と連携してリリースされるまでベータ版になります。V8 v5.3には開発者向けの便利な機能がたくさん含まれており、数週間後のリリースに先立ってそのハイライトをご紹介します。

V8 リリース v5.2

· 約3分
V8 チーム

約6週間ごとに、私たちはリリースプロセスの一環として V8 の新しいブランチを作成します。各バージョンは、Chrome が Chrome Beta マイルストーン用にブランチを分岐する直前に、V8 の Git マスターから分岐されます。本日、最新のブランチである V8 バージョン 5.2 を発表します。このバージョンは Chrome 52 Stable と連携してリリースされるまでベータ版です。V8 5.2 は開発者向けのさまざまな便利な機能が満載で、数週間後のリリースを見越して、注目すべき機能をいくつかご紹介します。

ES2015、ES2016、そしてその先

· 約11分
V8チーム、ECMAScriptの愛好家たち

V8チームは、JavaScriptをますます表現力豊かで明確化された言語に進化させることに大きな重要性を置いています。これにより、高速で安全かつ正確なWebアプリケーションの開発が容易になります。2015年6月に、ES2015仕様がTC39標準委員会によって批准され、これまでで最大規模のJavaScript言語の更新が行われました。新機能には、クラスアロー関数プロミスイテレータ/ジェネレータプロキシよく知られたシンボル、および追加の糖衣構文が含まれています。TC39はまた、新しい仕様のリリースペースを向上させ、2016年2月にES2016の候補草案を発表しました。これが今夏に批准される予定です。リリースサイクルが短いためES2015ほど広範ではありませんが、ES2016ではべき乗演算子Array.prototype.includesが重要な位置づけを占めています。

V8リリース v5.1

· 約4分
V8チーム

V8のリリースプロセスの最初のステップは、ChromiumがChrome Betaマイルストーン(約6週間ごと)のために分岐を行う直前に、Gitのマスターから新しいブランチを作成することです。我々の最新のリリースブランチはV8 v5.1であり、Chrome 51 Stableと連携して安定版をリリースするまでベータ版の状態を維持します。このバージョンのV8における開発者向けの新機能のハイライトをご紹介します。

ジャンク・バスターズ パート2: オリノコ

· 約8分
ジャンク・バスターズ: ウラン・デゲンバイエフ、ミハエル・リップアウツ、ハンネス・ペイヤー

以前のブログ記事では、ガベージコレクションがスムーズなブラウジング体験を妨げるジャンクの問題について紹介しました。本記事では、「オリノコ」というコードネームで呼ばれるV8の新しいガベージコレクタの基盤となる3つの最適化を紹介します。オリノコは、厳密な世代境界を持たない主に並列かつ同時的なガベージコレクタを実装することで、ガベージコレクションによるジャンクとメモリ消費を削減しつつ高いスループットを提供することを目指しています。オリノコを別個のガベージコレクタとして旗印の背後に実装するのではなく、V8の最新バージョンにオリノコの機能を段階的に搭載することで、ユーザーにすぐに恩恵をもたらすことにしました。この記事で紹介する3つの機能は、並列圧縮、並列リメンバードセット処理、およびブラックアロケーションです。

V8リリース v5.0

· 約3分
V8チーム

V8のリリースプロセスでの最初のステップは、Gitマスターから新しいブランチを作成することです。この作業はおおよそ6週間ごとにChrome BetaマイルストーンのためにChromiumがブランチする直前に行われます。我々の最新のリリースブランチはV8 v5.0で、Chrome 50 Stableと併せて安定版をリリースするまでベータ版として維持されます。このバージョンのV8での開発者向け新機能のハイライトを以下に示します。

V8でのWebAssemblyの実験的サポート

· 約4分
Seth Thompson, WebAssembly担当

WebAssemblyの包括的な概要と将来のコミュニティコラボレーションのロードマップについては、Mozilla HacksブログのA WebAssembly Milestoneをご覧ください。

2015年6月以来、Google、Mozilla、Microsoft、Apple、およびW3C WebAssembly Community Groupの共同作業者は、設計仕様化、および実装してきました(1234)。WebAssemblyはウェブ向けの新しいランタイムおよびコンパイルターゲットです。WebAssemblyは低レベルで移植可能なバイトコードで、コンパクトなバイナリ形式でエンコードされ、メモリ安全なサンドボックス内でほぼネイティブの速度で実行されるように設計されています。既存の技術を進化させる形で、WebAssemblyはウェブプラットフォームと緊密に統合されており、ネットワーク経由でのダウンロードが迅速で、asm.js(JavaScriptの低レベルサブセット)よりも迅速にインスタンス化可能です。

正規表現の後読みアサーション

· 約4分
Yang Guo, 正規表現エンジニア

ECMA-262仕様の第3版で導入された正規表現は、1999年以来JavaScriptの一部となっています。機能性と表現力において、JavaScriptの正規表現の実装は他のプログラミング言語とほぼ同等です。