Как я могу запустить программу на Java с большой максимальной кучей?
Я использую программу захвата памяти (CrashPlan), написанную на Java, которой иногда при пиковой нагрузке требуется около 1,5 ГБ памяти (это контролируется параметром -Xmx1500M).
Обычно (и по крайней мере при запуске) ему требуется очень мало памяти, но при значениях ниже -Xmx1500M происходит сбой при пиковой нагрузке. После запуска (с -Xmx1000M) Диспетчер задач показывает использование своей памяти около 100 МБ в рабочем наборе, частном наборе и выделенной памяти.
Однако Java VM не может начинаться с -Xmx1500M, я полагаю, потому что не удается выделить эту память. (С -Xmx1000M он запускается, но позже вылетает.)
Я использую 32-битную Windows 7 pro (не 64-битную) с установленной памятью 32 ГБ (доступно 3 ГБ и файл подкачки на большом диске ОЗУ в недоступной памяти).
Я ожидал бы, что Windows поменяет другие процессы, чтобы выделить память для Java, и, поскольку Java все равно не использует ее, поменяет неиспользуемую память Java на файл подкачки. Скажем, сейчас я вижу процесс mydefrag, использующий выделенный набор 1700 МБ, без проблем.
(Кажется, до прошлой недели это работало так. Потом что-то изменилось.)
Как я могу заставить Java начинаться с -Xmx1500M?