У меня довольно интенсивная вычислительная программа на Java, которую я тестирую на сервере Linux. Он отлично работает на моем MacBook.
Если я запускаю его на сервере, происходит следующее: как только объем памяти достигает 324 МБ, программа начинает останавливаться. Очевидно, что некоторые ограничения запрещают использовать больше памяти, и сборщик мусора должен делать все больше и больше работы, чтобы оставаться ниже этого ограничения. В какой-то момент выдается «исключение GC превышено» исключение ».
Я запускаю Java с -Xmx16000m, так что не может быть предел памяти. Каковы другие возможные ограничения?
Это версии Java, которые я использую:
Macbook:
Java-версия "1.5.0_16"
Среда выполнения Java (TM) 2, Standard Edition (сборка 1.5.0_16-b06-284)
Клиентская виртуальная машина Java HotSpot (TM) (сборка 1.5.0_16-133, смешанный режим, совместное использование)
Сервер Linux:
Java-версия "1.6.0_12"
Java (TM) SE Runtime Environment (сборка 1.6.0_12-b04)
Java HotSpot (TM) 64-разрядная серверная виртуальная машина (сборка 11.2-b01, смешанный режим)