Ну, колоссальные могут иметь много причин, и ни одна из них не является особенно захватывающей.Во-первых, как было сказано ранее, в «диспетчере задач», посмотрите на подробную информацию о процессе и убедитесь, что вы смотрите на рабочий набор, а не на размер фиксации памяти (виртуальная память).
Затем, нижеэто список (в верхней части моей головы) вещей в процессе JVM, которые не будут считаться кучей java, другие могут добавить в список (или, возможно, вычесть или уточнить):
- Пермский генерал
- Пространство стека потоков
- Сегменты общего кода
- Обработка сегментов частного кода
- В буферах ввода-вывода в процессе
- JVM "данные / код" (точки доступа, различные временные файлы, кэши и т. Д.)
- Фрагментация памяти в вышеупомянутых данных
Но я согласен с вами, если вы действительно ищетена рабочем комплекте это звучит немного колоссально.На наших 32-битных серверах смолы под большой нагрузкой (Debian Linux) у нас обычно используется 1-1,5 ГБ памяти без использования Java-кучи.