BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Project Leyden、早期アクセスビルドを発表:Javaアプリケーションの起動を2-3倍改善

Project Leyden、早期アクセスビルドを発表:Javaアプリケーションの起動を2-3倍改善

原文リンク(2024-07-08)

OpenJDKは、Project Leydenのアーリー・アクセス(EA)ビルドを発表し、マイルストーンに達し、現在ダウンロード可能だ。このビルドは、Javaアプリケーションのパフォーマンス強化、特に起動時間に焦点を当てた、1年以上にわたる開発努力の成果である。予備テストでは、一般的なアプリケーションフレームワークで起動時間が2~3倍改善されるなど、目覚ましい結果が得られている。

Leyden EAビルドは、ランタイムから、「トレーニング実行」(以前の実験実行)と呼ばれるワークロードにシフトすることで、Javaアプリケーションを最適化するために設計された数多くの革新的な機能を導入している。これらのトレーニング実行中、バイトコードからネイティブコードへのプリコンパイルなど、さまざまな情報がアプリケーションの動作に基づいて事前に計算される。

統合キャッシュ・データ・ストア(CDS)アーカイブは、他の機能の基盤となっている。この機能強化により、CDSはクラス・メタデータ、ヒープ・オブジェクト、プロファイリング・データ、コンパイル済みコードを保存できるようになった。CDS アーカイブには、 -XX:CacheDataStoreフラグを使用してアクセスするため、CDS アーカイブの作成とテストが簡素化される。

-XX:+PreloadSharedClassesフラグで有効になるCDSアーカイブのロード・クラス機能は、アプリケーションの開始と同時にクラスをロード状態にプリロードすることを可能にする。これにより、様々なタイムシフト最適化が促進され、起動プロセスが高速化される。

CDSアーカイブのメソッド・プロファイルは、CDSアーカイブにトレーニング実行からのメソッド・プロファイルを保存することで、ウォームアップ中にジャスト・イン・タイム(JIT)コンパイラが早期にコンパイルを開始できるようになる。これにより、Javaアプリケーションはより早くピーク・パフォーマンスに達することができる。この機能は、-XX:+RecordTrainingおよび-XX:+ReplayTrainingフラグによって有効になる。

定数プール・エントリーのAOT(Ahead-of-time、事前の)解決 は、トレーニング実行中に多くの定数プール・エントリーを解決し、起動時間を改善し、AOTコンパイラーによるより良いコード生成を可能にする。この最適化は、-XX:+ArchiveFieldReferences-XX:+ArchiveMethodReferences、および -XX:+ArchiveInvokeDynamicフラグが、有効になる。

JavaメソッドのAOTコンパイルは、トレーニング実行中に頻繁に使用されるメソッドを特定し、コンパイルして CDS アーカイブに保存する。これにより、アプリケーションの起動時に即座にネイティブ実行が可能になる。-XX:+StoreCachedCode-XX:+LoadCachedCode 、および -XX:CachedCodeFileフラグが、この機能を管理する。

ダイナミック・プロキシとリフレクション・データのAOT生成は、一般的なアプリケーション・フレームワークでよく使用されるダイナミック・プロキシとリフレクション・データを事前に生成することで、起動時間を短縮する。-XX:+ArchiveDynamicProxiesおよび-XX:+ArchiveReflectionDataフラグは、それぞれこれらの機能を有効にする。

クラス・ローダー・ルックアップ・キャッシュは、アプリケーション・フレームワークで一般的な、繰り返されるクラス・ルックアップをキャッシュすることで高速化する。この機能には、-XX:+ArchiveLoaderLookupCacheフラグでアクセスできる。

Leydenの機能を試すために、開発者はLeyden EAリリースから-XX:CacheDataStoreフラグを付けたjavaプログラムを使用できる。

Leyden EA ビルドは、Java アプリケーションの最適化、特に起動時間の最適化を大幅に進めた。開発者は、AOTコンパイル、統一CDSアーカイブ、アーカイブされたメソッド・プロファイルなどの機能により、顕著な性能向上を期待できる。これらの機能を改良し、将来のJavaリリースにうまく統合するためには、コミュニティの継続的な関与が不可欠である。

コミュニティからの継続的なフィードバックは、さらなる改良に不可欠である。開発者は、Leyden EAビルドを試して、leyden-dev at openjdk.orgまで電子メールで経験を共有することが推奨される。

Leydenの機能を試してみたい、プロジェクトについてもっと知りたいという開発者は、リリースノートを参照し、Leyden EAビルドの詳しい情報や使い方を知ることができる。

デザインノート、プレゼンテーション、公式リポジトリなどのリソースを通じてProject Leydenの開発に関する最新情報を入手することで、Java開発者はこれらの最適化を活用してアプリケーションのパフォーマンスと効率を向上させることができる。以前InfoQが報告したように、Project Leydenは、AOTコンパイルの実装の遅れを含む様々な課題に取り組んでおり、今回のリリースはそれを軽減することを目的としている。

作者について

この記事に星をつける

おすすめ度
スタイル

BT