JDK 7でのJava仮想マシンの拡張機能

以降のページでは、JDK 7リリースで導入されるJava仮想マシンに関する大きな変更の一部について紹介します。

さらに、次の拡張機能が追加されています。

分野: HotSpot
Standard/Platform:Java SE 7 Update 1
概要:JITおよびループのバグ:Apache Lucene開発者を含むさまざまな関係者から報告された3つのバグ、およびOracleで発見された4つ目の関連バグがJDK 7 Update 1で修正されています。
RFE: 7070134, 7068051, 7044738, 7077439

分野: HotSpot
Standard/Platform:Java SE 7
概要:GetLocalInstanceメソッドを追加するため、JVM/TIバージョン番号が1.1から1.2へ変更されています。
RFE: 7003782, 7004582

分野: HotSpot
Standard/Platform:JDK 7
概要: バージョン番号51を持つクラス・ファイルは専用の型チェック検証ツールを使用して検証されるため、該当するメソッドにはStackMapTable属性が必要です。バージョン50のクラス・ファイルについては、ファイル内のスタック・マップが見つからないか正しくない場合に、HotSpot JVMが型推定検証ツールを(引き続き)フェイルオーバーします。このフェイルオーバー動作は、バージョン51 (JDK 7のデフォルト・バージョン)のクラス・ファイルでは発生しません。
バージョン51クラス・ファイル内のバイト・コードを変更するツールは、検証に合格するために、バイト・コードに一致するようにスタック・マップ情報を必ず更新する必要があります。
RFE: 6693236

分野: HotSpot
Standard/Platform:JDK 7
概要: JDK 7では、internされた文字列がJavaヒープの永続世代に割り当てられなくなり、代わりに、アプリケーションによって作成されたほかのオブジェクトとともにJavaヒープの主要部分(若い世代と古い世代)に割り当てられます。この変更によって、主要Javaヒープに常駐するデータが多くなり、永続世代内のデータが少なくなるため、ヒープ・サイズの調整が必要になる場合があります。ほとんどのアプリケーションでは、この変更によってヒープ使用に比較的小さな違いしか見られませんが、多数のクラスをロードしたりString.intern()メソッドを多用したりする大きなアプリケーションでは、より大きな違いが見られます。
RFE: 6962931

分野: HotSpot
Standard/Platform:JDK 7
概要: コンカレント・マーク・スイープ・コレクタ(CMS)のデフォルトのヒープ・サイズおよび形状パラメータが変更されました。新しい設定は、JDK 6リリース以降に導入された、より高速なプラットフォームを利用します。CMSは、HotSpot内のその他のコレクタと同様に、プラットフォーム上の利用可能な物理メモリーを使用してそのヒープをサイズ調整しながら、小さなコレクションに関連付けられた一時停止時間を「妥当」に維持するためにそのヒープを形状調整しようとします。ヒープの具体的な形状は、ほかの場合と同様にプラットフォームによって異なる場合があります。
ユーザーは、これらのデフォルト設定の全部または一部を、固有のニーズに合わせて、ヒープを明示的にサイズ調整または形状調整(「ヒープ・チューニング」)することでオーバーライドできます。
このおよびその他のガベージ・コレクタのデフォルト設定の詳細は、「Heap Tuning Guide for JDK 6」を参照してください。
RFE: 6896099

分野: HotSpot
Standard/Platform:JDK 7
概要: JDK 6リリース・ノートにはCMSのパフォーマンス向上が含まれていました。JDK 5によって提供される動作を引き続き使用するためのメカニズムを提供するために、CMSUseOldDefaultsフラグが提供されました。このフラグは、いくつかの設定をデフォルト状態に戻しました。ここ数年間で、このフラグは最小限しか使用されておらず、ほとんどの顧客は改善されたCMSパフォーマンスを選んでいます。CMSUseOldDefaultsフラグは削除されています。
RFE: 7027529

分野: HotSpot
Standard/Platform:JDK 7
概要: このリリースのGarbageFirst (G1)ガベージ・コレクタは、試験的です。jstackjmapなどの一部のコマンド行ツールは、G1コレクタを使用する際に正しく動作しない場合があります。
RFE: 6966967

分野: HotSpot
Standard/Platform:JDK 7
概要: JDKの以前のリリースでは(Solarisのみ)、Thread.interrupt()メソッドが一部のブロッキングI/Oオペレーションに割り込み、ターゲット・スレッドによってInterruptedIOExceptionがスローされ、ソケットまたはファイル・ストリームを不整合な状態にしました。このいわゆる「割込み可能なレガシーI/Oサポート」は、JDK 7で無効化されています。このSolaris固有動作に依存していたアプリケーションは、コマンド行で-XX: +UseVMInterruptibleIOオプション付きで実行することで、このサポートを再度有効化できます。将来のJDKリリースでは、割込み可能なレガシーI/Oサポートが完全に削除される可能性があります。
RFE: 6554406


Copyright © 1993, 2020, Oracle and/or its affiliates. All rights reserved.