Это довольно загадочно, 64-битная ОС, 64-битный JDK, 16 ГБ ОЗУ, и я не могу использовать более 4 ГБ для кучи. Вот как я запускаю программу (моя программа на Scala, но основана на JVM):
/usr/lib64/jvm/java/bin/java -d64 -Xms512m -Xmx10g ...jars go on
И когда я читаю общую память в моей программе (_2 _) ... чтение составляет «4242 МБ».
ВОПРОС - как заставить JVM использовать уже предоставленный мной объем памяти (10 ГБ)?
java -version
говорит:
java version "1.6.0_29"
Java(TM) SE Runtime Environment (build 1.6.0_29-b11)
Java HotSpot(TM) 64-Bit Server VM (build 20.4-b02, mixed mode)
Обновление 1
maxMemory
возвращает "9102 МБ", поэтому теперь возникает вопрос, в чем разница (как 1 ГБ, так и 5 ГБ), и как использовать всю максимальную память (моя программа вылетает, потому что для этого требуется 2 фрагмента по ~ 3 ГБ, а всего 4 ГБ нет) достаточно).
Обновление 2
Теперь я поместил все показания до и после моего распределения, и удивление, удивление, первое чтение общей памяти было 4 ГБ, второе тоже, но третье достигло пика до 8 ГБ. Я рад, общая память может внезапно увеличиться, потому что это решает мою проблему, но я этого не понимаю.