Java 8 Распределение памяти
Давайте предположим, что у меня есть JDK/JRE 8, также я добавил JAVA_OPTS= -Xmx8G -Xms1G.
Я указал без каких-либо других параметров (java -jar 1.jar; java -jar 2.jar) 2 простых банок. Так что теперь у меня есть два процесса Java.
1) Выполнены ли они в одной JVM (как два процесса Java), или каждый процесс будет выполняться в отдельной JVM?
2) -Xmx8G -Xms1G размер кучи будет применяться отдельно к каждому из двух выполненных jar-файлов, или этот размер кучи будет чем-то общим для двух выполняемых jar-файлов?
3) Что будет с распределением памяти, если запустить один jar ( java -jar 1.jar), а другой - с java -jar 2.jar Xmx12G?
PS Хотелось бы, чтобы у вас были хорошие ссылки.
PSS Не спрашивай, что я курю:)
1 ответ
Лучший способ - проанализировать экземпляры JVM в вашей системе. Просто откройте JMC(Java Mission Control). Всякий раз, когда вы выполняете какое-либо приложение, оно будет отображаться как отдельный jvm. пример: если вы запустите jar1 и jar2, JMC покажет три JVM - jar1, jar2, jmc. Затем вы можете использовать браузер MBean там, чтобы проанализировать все ваши jvm.
Надеюсь, поможет.