Сколько JVM мы можем иметь на одной машине? - PullRequest
7 голосов
/ 13 января 2011

У меня есть класс с бесконечным запуском (ничего не делать, просто цикл и сон), который называется NeverReturn.Я пытаюсь запустить его с помощью следующей команды в Windows XP 32bit:

java -Xms1200M NeverReturn

Я обнаружил, что с помощью команды я могу создать только 4 экземпляра Java одновременно.5-й и следующей java-команде не удалось создать jvm.

Если я изменю команду на -Xms600M, я смогу создать 8 экземпляров java.9-ая воля не удалась.

Может кто-нибудь объяснить это?Я использую Sun JDK1.6 обновление 23 и JDK1,5 обновление 22.

Ответы [ 3 ]

5 голосов
/ 13 января 2011

Если у вас есть четыре экземпляра JVM, каждый из которых использует 1200M памяти, это дает вам выделенную 4800M памяти.

Если у вас есть восемь экземпляров JVM, каждый из которых использует до 600M памяти, это4800M памяти.

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

2 голосов
/ 13 января 2011

Простой ответ: столько JVM, сколько вы хотите; конечно, если ваша машина может предоставить необходимые ресурсы (чтение памяти).

Если вы хотите спросить, сколько JDK / JRE вы можете использовать на машине (разные версии JDK / JRE); ответ «нет ограничений».

Так что вы можете иметь много JDK, но я не уверен в установщиках Windows. Вместо этого вы всегда можете использовать дамп.

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

0 голосов
/ 13 января 2011

Для каждого экземпляра виртуальной машины, запускаемой таким образом, ему выделяется 600 МБ памяти, то есть, если бы у вас было только 1 ГБ памяти, вы могли бы успешно запустить только один экземпляр JVM, если бы каждый экземпляр мог использовать600 МБ памяти.Судя по всему, у вас было примерно 4,6 ГБ свободной памяти на момент запуска 8 экземпляров по 600 МБ каждый.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...