[解決済み] JVM ARGS '-Xms1024m -Xmx2048m' はJava 8でも有効ですか?
2022-02-15 13:28:23
質問
JVM ARGSを使用したJava 7アプリケーションがあります。
-Xms1024m -Xmx2048m
で、かなりうまく動いています。
Java 8にアップグレードしたら、Exceptionでエラー状態で動作するようになりました。
Exception in thread "main" java.lang.OutOfMemoryError: GC overhead limit exceeded
at org.hibernate.engine.StatefulPersistenceContext.addEntry(StatefulPersistenceContext.java:466)
at org.hibernate.engine.TwoPhaseLoad.postHydrate(TwoPhaseLoad.java:80)
at org.hibernate.loader.Loader.loadFromResultSet(Loader.java:1439)
at org.hibernate.loader.Loader.instanceNotYetLoaded(Loader.java:1332)
at org.hibernate.loader.Loader.getRow(Loader.java:1230)
at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:603)
at org.hibernate.loader.Loader.doQuery(Loader.java:724)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:259)
at org.hibernate.loader.Loader.doList(Loader.java:2228)
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2125)
at org.hibernate.loader.Loader.list(Loader.java:2120)
at org.hibernate.loader.criteria.CriteriaLoader.list(CriteriaLoader.java:118)
at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1596)
at org.hibernate.impl.CriteriaImpl.list(CriteriaImpl.java:306)
JVMのARGSはどうなんだろう?
-Xms1024m -Xmx2048m
はまだ機能しているのでしょうか?
Java 8 で Perm Generation が削除されたため。 http://www.infoq.com/articles/Java-PERMGEN-Removed Java 7とJava 8のGC戦略/メモリ管理の違いが根本的な原因かもしれませんね。何か提案はありますか?
解決方法は?
PermGenの削除に伴い、いくつかのオプションが削除されました(たとえば
-XX:MaxPermSize
) が、オプション
-Xms
と
-Xmx
は、Java 8 で動作します。Java 8では、アプリケーションが単に多少多くのメモリを必要としている可能性があります。を増やしてみてください。
-Xmx
の値で指定します。あるいは、G1 ガベージコレクタに切り替えるために
-XX:+UseG1GC
.
Java 8で削除されたオプションを使用した場合、アプリケーションの起動時に警告が表示されますのでご注意ください。
$ java -XX:MaxPermSize=128M -version
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=128M; support was removed in 8.0
java version "1.8.0_25"
Java(TM) SE Runtime Environment (build 1.8.0_25-b18)
Java HotSpot(TM) 64-Bit Server VM (build 25.25-b02, mixed mode)
関連
-
[解決済み】「'void' type not allowed here」エラーの原因とは?
-
[解決済み] 二項演算子「&」のオペランド型がおかしい java
-
[解決済み】Java Error "Exception in thread "main" java.util.InputMismatchException" Array プログラムで発生。
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] JavaでNullPointerExceptionを回避する方法
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] Java Mapの各エントリを効率的に反復処理するには?
-
[解決済み] Javaでメモリーリークを発生させるにはどうしたらいいですか?
-
[解決済み] JavaでArrayListではなくLinkedListを使用するのはいつですか?
-
[解決済み] リフレクションとは何か、なぜ有用なのか?
最新
-
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.lang.Iterable のインスタンスに対してのみ反復処理を行うことができます。
-
[解決済み】Doubleはdereferencedできない?
-
[解決済み】不正な反射的アクセスとは?
-
[解決済み] 二項演算子「&」のオペランド型がおかしい java
-
[解決済み】-XX:MaxPermSizeは何をするのですか?
-
[解決済み】文字列中の � を置換する方法
-
[解決済み】javaで無効な文字定数
-
[解決済み】予期しない型エラー
-
[解決済み】Eclipseで「パッケージエクスプローラー」ビューが見つからない
-
[解決済み】 executeQuery()でデータ操作文が発行できない。)