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.

Надеюсь, поможет.

Другие вопросы по тегам