У меня есть приложение Java 7 с использованием JVM ARGS: -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, я думаю, что стратегия управления/управления GC между Java 7 и Java 8 может быть основной причиной. Есть ли какие-либо предложения?