XX:-TieredCompilationは具体的に何をするのですか?
2023-10-14 17:48:39
質問
使用方法
java -XX:+PrintFlagsFinal
を見つけたので
TieredCompilation
フラグを見つけ、それについてネットで少し読みました。
それでも、私はまだ
まさに
に設定するとどうなるのか。
false
.
コンパイルシステムは、基本的にインタプリタ、C1、C2に分割された5つの実行レベルをサポートしていますね。
- レベル 0 - インタプリタ
- レベル 1 - C1 と完全な最適化 (プロファイリングなし)
- レベル 2 - C1 (呼び出しおよびバックエッジ カウンター付き)
- レベル 3 - 完全なプロファイリングを備えた C1 (レベル 2 + MDO)
- レベル4 - C2
2つの質問です。
(1)
-XX:-TieredCompilation
を設定することによって、このレベルのいくつかがちょうど無効になりますか?もしそうなら、どのレベルですか?
(2) C1 と C2 のどちらを無効にするか、あるいは全くコンパイルしないかを決定するフラグがありますか?
どのように解決するのですか?
-XX:-TieredCompilation
は中間コンパイル層 (1, 2, 3) を無効にし、メソッドが解釈されるか、または最大最適化レベル (C2) でコンパイルされるようにします。
副次的な効果として
TieredCompilation
フラグは、コンパイラのスレッド数、コンパイルポリシー、 デフォルトのコードキャッシュサイズも変更します。注意点として
TieredCompilation
は無効です。
- コンパイラのスレッドが少なくなります。
- シンプルなコンパイル方針 (メソッド呼び出しとバックエッジカウンタに基づく) が選ばれ、代わりに アドバンストコンパイルポリシー ;
- デフォルトの予約コードキャッシュサイズは 5倍小さくなります .
C2コンパイラを無効にし、余分なオーバーヘッドを排除したC1のみを残すには、以下のように設定します。
-XX:TieredStopAtLevel=1
.
すべてのJITコンパイラを無効にし、すべてをインタプリタで実行する場合は
-Xint
.
関連
-
[解決済み] JVM起動時のパラメータ「-Xms」「-Xmx」とは何ですか?
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] Javaにおけるpublic、protected、package-private、privateの違いは何ですか?
-
[解決済み] serialVersionUIDとは何ですか、またなぜそれを使用する必要がありますか?
-
[解決済み] リフレクションとは何か、なぜ有用なのか?
-
[解決済み] JavaBeanとは何ですか?
-
[解決済み] Could not find or load main class "とはどういう意味ですか?
-
[解決済み] シンクロナイズド」とはどういう意味ですか?
-
[解決済み】Javaではfinallyブロックは必ず実行されるのですか?
-
[解決済み】Apache Camelとは一体何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Eclipseは、ポップアップA Java Exception has occurred.を実行し、エラーException in threadの解決策を報告します。
-
Eclipse問題 アクセス制限。タイプ 'SunJCE' が API でないことを解決し、/jdk ディレクトリにある /jre と jre の違いについて理解を深める。
-
java.sql.SQLException: executeQuery()でデータ操作文を発行できません。
-
BindException: アドレスはすでに使用中です:バインドエラー解決
-
Javaがリソースリークに遭遇した:'input'が閉じない 解決方法
-
コンストラクタDate()が未定義である問題
-
Java の double データ型における 0.0 と -0.0 の問題
-
java 365*1000*60*60*24 計算問題
-
IDEAError:javaの依存性エラー。Annotation processing is not supported for module cycles...(アノテーション処理はモジュールサイクルではサポートされていません。
-
[解決済み] Javaがヒープサイズ(またはDockerのメモリ制限を満たすサイズ)よりはるかに多くのメモリを使用する。