[解決済み] エラー java.lang.OutOfMemoryError: GCオーバーヘッドの制限を超えました
2022-03-22 09:43:13
質問
を実行すると、このようなエラーメッセージが表示されます。
JUnit
をテストします。
java.lang.OutOfMemoryError: GC overhead limit exceeded
は知っている。
OutOfMemoryError
はともかく、GCのオーバーヘッド制限ってどういうことなんだろう?どうすれば解決できますか?
どのように解決するのですか?
このメッセージは、何らかの理由でガベージコレクタが過剰な時間(デフォルトではプロセスの全CPU時間の98%)を費やし、各実行でごくわずかなメモリ(デフォルトではヒープの2%)しか回収できないことを意味します。
これは事実上、あなたのプログラムが何の進歩もしなくなり、常にガベージコレクションの実行だけに忙殺されることを意味します。
アプリケーションが何もせずにCPU時間を消費するのを防ぐために、JVMはこの
Error
そのため、問題を診断するチャンスがあります。
私が見た中で、このような現象が起こるのは、すでに非常にメモリ制約のある環境で、あるコードが大量の一時オブジェクトと大量の弱参照オブジェクトを生成していた場合です。
Java GCチューニングガイドをチェックしてください。様々なJavaバージョンで利用可能で、この特定の問題についてのセクションが含まれています。
-
Java 11 チューニングガイド
には、さまざまなガベージコレクタの過剰なGCに関する専用のセクションがあります。
- の場合 パラレルコレクター
- には CMS(コンカレント・マーク・スイープ)コレクター
- は、ガーベッジファースト(G1)コレクタのこの特定のエラー状態について言及されていません。
- Java 8 チューニングガイド とその 過剰なGCセクション
- Java 6 チューニングガイド とその 過剰なGCセクション .
関連
-
エラー java.util.NoSuchElementException
-
プロジェクトの依存関係を解決できなかった 解決
-
IDEA パッケージステートメントの欠落
-
Maven Pluginの実行がライフサイクル設定の対象外であるエラーの解決
-
[解決済み] Could not find or load main class "とはどういう意味ですか?
-
[解決済み] Bitmapオブジェクトに画像を読み込む際にOutOfMemoryが発生する問題
-
[解決済み] java.lang.OutOfMemoryError "に対処する。PermGen space "エラーに対処する
-
[解決済み] 残念ながらMyAppは停止してしまいました。どうすればよいですか?
-
[解決済み] java.lang.OutOfMemoryError" の対処法。Java heap space "エラーの対処方法を教えてください。
-
[解決済み] JUnit Testアノテーションを使用して例外メッセージをアサートするにはどうすればよいですか?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
エラー java.util.NoSuchElementException
-
java.util.NoSuchElementException 原因解析と解決方法
-
myeclipseでコンパイルするとAntエラーが発生する javaの例外が発生しました。
-
eclipse アクセス制限です。タイプ 'xxx' は API ではありません(必須ライブラリ '' の制限)。
-
JDKの設定時にjava.dllが見つからない、java SE Runtime Environmentが見つからない問題が発生しました。
-
Eclipseでプロジェクトエクスプローラービューとパッケージエクスプローラービューを使う
-
スレッド "main" での例外 java.lang.ArrayIndexOutOfBoundsException: 1
-
スレッド "main" で例外発生 java.net.BindException: アドレスは既に使用中です。NET_Bind
-
java -serverコマンドで「Error: no `server' JVM at ... jvm.dll」を解決する方法です。
-
[解決済み] [Solved] java.lang.OutOfMemoryError: GC オーバーヘッドの制限を超えました [重複]。