Я установил максимальную кучу до 8 ГБ. Когда моя программа начнет использовать около 6,4 ГБ (как указано в VisualVM), сборщик мусора начинает занимать большую часть процессора, а программа вылетает с OutOfMemory при распределении ~ 100 МБ. Я использую Oracle Java 1.7.0_21 для Windows.
Мой вопрос в том, есть ли варианты GC, которые помогут в этом. Я ничего не пропускаю, кроме -Xmx8g.
Мое предположение, что куча становится фрагментированной, но не должен ли GC компактно это делать?