原文はこちら。
The original article was written by Billy Korando (Developer Advocate at Oracle).
https://inside.java/2025/06/09/quality-heads-up/
OpenJDK Quality Groupは、リリースの全体的な品質向上の手段としてOpenJDKビルドを使ってのFOSSプロジェクトのテストを推進しています。
Quality Outreach
https://wiki.openjdk.java.net/display/quality/Quality+Outreach
このHeads upは、関係するプロジェクトに送られる定期的なコミュニケーションの一部です。このプログラムの詳細と参加方法については、上記wikiをご覧ください。
The quality-discuss Archives
https://mail.openjdk.org/pipermail/quality-discuss/
Separate Metaspace and GC Printing
これまで、MetaspaceとGCログの出力は結合されていました。これは、GCヒープの一部としてパーマネント領域(permanent generation、PermGen)が存在していたためです。しかし、MetaspaceはPermGenに置き換わり、GCヒープ外のネイティブメモリ領域に独立して存在しています。MetaspaceがGCヒープの一部でなくなったため、メッセージの結合に意味がなくなっており、混乱を招く可能性があります。
JDK 25から、HotSpot JVMでのログのタグ付け方法が変わります。
ログの内容とログレベル(例:infoまたはdebug)は同じですが、Metaspaceに関連するメッセージは既存のmetaspaceタグを使用するようになります。以下は変更点を示す例です。
$ java -Xlog:gc*=debug ...
これまで
[1,370s][debug][gc,heap ] GC(0) Y: Heap before GC invocations=0 (full 0):
[1,370s][debug][gc,heap ] GC(0) Y: ZHeap used 862M, capacity 862M, max capacity 9216M
[1,370s][debug][gc,heap ] GC(0) Y: Cache 0M (0)
[1,370s][debug][gc,heap ] GC(0) Y: Metaspace used 18720K, committed 19008K, reserved 1114112K
[1,370s][debug][gc,heap ] GC(0) Y: class space used 1611K, committed 1728K, reserved 1048576K
JDK 25から
[1,039s][debug][gc,heap ] GC(0) Y: Heap Before GC invocations=0 (full 0):
[1,039s][debug][gc,heap ] GC(0) Y: ZHeap used 860M, capacity 860M, max capacity 9216M
[1,039s][debug][gc,heap ] GC(0) Y: Cache 0M (0)
[1,039s][debug][gc,metaspace] GC(0) Y: Metaspace Before GC invocations=0 (full 0):
[1,039s][debug][gc,metaspace] GC(0) Y: Metaspace used 18674K, committed 19008K, reserved 1114112K
[1,039s][debug][gc,metaspace] GC(0) Y: class space used 1601K, committed 1728K, reserved 1048576K
jcmd Update
この更新の一環で、jcmdにもユーザー向けの変更がいくつか追加されました。MetaspaceがGCヒープの一部ではないことを明確にするため、GC.heap_infoコマンドでMetaspaceの情報を表示しなくなりました。代わりに、Metaspaceのメモリ使用状況の詳細はVM.metaspaceに移動されました。以下は変更点を示す例です。
これまで
$ jcmd SourceLauncher GC.heap_info
71420:
ZHeap used 96M, capacity 576M, max capacity 9216M
Cache 480M (1)
size classes 256M (1)
Metaspace used 18155K, committed 18496K, reserved 1114112K
class space used 1536K, committed 1664K, reserved 1048576K
$ jcmd SourceLauncher VM.metaspace
71420:
Total Usage - 125 loaders, 2860 classes:
...
JDK 25から
$ jcmd SourceLauncher GC.heap_info
21832:
ZHeap used 96M, capacity 576M, max capacity 9216M
Cache 480M (1)
size classes 256M (1)
$ jcmd SourceLauncher VM.metaspace
21832:
Metaspace used 18134K, committed 18432K, reserved 1114112K
class space used 1519K, committed 1664K, reserved 1048576K
Total Usage - 125 loaders, 2834 classes:
...
このアップデートは、以下から入手可能な25-eaメインラインビルドに組み込まれました。
OpenJDK JDK 25 Early-Access Builds
https://jdk.java.net/25/
この変更の詳細については、JDK-8356938をご確認ください。
[JDK-8356938] Separate Metaspace and GC printing
https://bugs.openjdk.org/browse/JDK-8356938
ご意見やご要望は、hotspot-devメーリングリストまでご報告ください。
The hotspot-dev Archives
https://mail.openjdk.org/pipermail/hotspot-dev/