Java アプリケーションのパフォーマンスを向上させるために、Java コミュニティ内の新しい提案では、 Z Garbage Collector (ZGC)を拡張して、若いオブジェクトと古いオブジェクトの世代を分けて維持できるようにします。これにより、 ZGC若いオブジェクトをより頻繁に収集できるようになります。Java 開発者によると、若いオブジェクトは若くして死ぬ可能性が高いからです。
世代別ZGCのOpenJDK Java Enhancement Proposal (JEP)の主な目的には、割り当てストールのリスク、ヒープ メモリ オーバーヘッド、およびガベージ コレクション (GC) CPU オーバーヘッドの削減が含まれます。この提案の支持者は、非世代ZGCと比較した場合、スループットを大幅に低下させることなく、これらの利点を達成できると考えています。
スケーラビリティと低レイテンシーのために設計されたZ Garbage Collectorは、2020 年 9 月のJava Development Kit (JDK) 15以降の製品リリースで利用できます。デフォルトの G1 コレクターとは対照的に、一時停止時間はミリ秒から変動します。から秒まで、 ZGC一時停止時間は一貫してマイクロ秒単位で測定されます。その結果、 ZGC多くのワークロードのガベージ コレクションに関連するレイテンシの問題を効果的に解決できます。
ZGC十分なリソースが利用可能な場合に適切に機能します。ただし、年齢に関係なくすべてのオブジェクトをまとめて格納するため、 ZGCは動作するたびにすべてのオブジェクトを収集する必要があります。弱い世代仮説は、若いオブジェクトは若くして死亡する傾向があり、古いオブジェクトは存続する可能性が高いと主張します。その結果、若いオブジェクトを収集すると、必要なリソースが少なくなり、より多くのメモリが解放されますが、古いオブジェクトを収集すると、より多くのリソースが消費され、解放されるメモリが少なくなります。
世代別ZGC提案は、特定の標準 Java バージョンにはまだ割り当てられていません。現在のリリースであるJDK 20 1 週間前に導入され、 JDK 21 9 月にリリースされる予定です。標準 Java は、6 か月のリリース周期で動作します。
世代別ZGC の提案が議論されているため、appmaster .io" target="_blank" rel="noopener" data-mce-href="https:// appmaster.io"> AppMasterなどのno-codeプラットフォームは、開発者がバックエンドを構築するのに役立ちます、Web およびモバイル アプリケーションを迅速かつ効率的に使用できますAppMasterアプリケーションは、優れたスケーラビリティと低遅延を実証できるため、エンタープライズ アプリケーションや高負荷のシナリオに適しています。AppMaster の機能をさらに詳しく調べるには、 appmaster .io" data-mce-href="https: //studio. appmaster.io">無料のアカウントを作成し、強力なno-codeツールを活用してください。