Почему слишком большое значение -Xmx иногда приводит к сбою JVM, даже если есть доступная оперативная память?

В основном мы заметили, что на некоторых компьютерах установка параметра JVM -Xmx (максимальный размер кучи) иногда приводит к сбою инициализации JVM, даже если в системе более чем достаточно оперативной памяти.

Так, например, на машине 4 ГБ у нас есть -Xmx1024m, которая не работает, но -Xmx800m работает. Я мог понять на машине 1 ГБ, даже на машине 2 ГБ, но на машине 4 ГБ, особенно учитывая, что Windows, Linux и т. Д. Могут выгружать ОЗУ, почему это не удается?

Я видел много потоков и вопросы о том, чтобы уменьшить максимальный размер кучи, но никто не может объяснить, почему это не удается, а это то, что я действительно ищу.

Как сказать, потребляйте столько памяти, сколько хотите, до определенного размера?

7
задан Charles 5 January 2012 в 23:55
поделиться