2017-01-19 4 views
0

У меня проблема с отображением дюз. У меня есть вложенные списки до 5 уровней для отображения, которые должны создавать 100 объектов. Это происходит для нескольких разных вызовов с разными наборами данных.Бульдозер: java.lang.OutOfMemoryError: превышен верхний предел GC

org.dozer.MappingException: java.lang.OutOfMemoryError: GC overhead limit exceeded at org.dozer.util.MappingUtils.throwMappingException(MappingUtils.java:82)

+0

Просто примечание: последнее обновление библиотеки Dozer было 04/2014. Возможно, вы должны использовать другую библиотеку сопоставления. – dit

ответ

0

У вас заканчивается куча.

Increase heap memory available to JVM using Xmx argument.

Более подробная информация об этой ошибке (взято из here):

The detail message "GC overhead limit exceeded" indicates that the garbage collector is running all the time and Java program is making very slow progress. After a garbage collection, if the Java process is spending more than approximately 98% of its time doing garbage collection and if it is recovering less than 2% of the heap and has been doing so far the last 5 (compile time constant) consecutive garbage collections, then a java.lang.OutOfMemoryError is thrown. This exception is typically thrown because the amount of live data barely fits into the Java heap having little free space for new allocations. Action: Increase the heap size. The java.lang.OutOfMemoryError exception for GC Overhead limit exceeded can be turned off with the command line flag -XX:-UseGCOverheadLimit.

Вы можете попробовать другую структуру отображения, например Orika

+0

Спасибо за ваш ответ. Фактически мы получаем это исключение только в производственной среде и являемся сайтом электронной коммерции, и тысячи пользователей обращаются к нему одновременно. Теперь подавление исключения по указанным вами параметрам может привести к проблемам с производительностью, поэтому мы не можем идти таким образом. Итак, как вы сказали, единственный способ исправить это - увеличить размер кучи. Кроме того, я не уверен в внутренней реализации dozer, но я считаю, что вместо ручного преобразования вместо Dozer можно исправить эту проблему. Есть предположения? –

Смежные вопросы