Java VM не распознает -XX: G1YoungGenSize? - PullRequest
6 голосов
/ 23 августа 2010

Я использую сборщик мусора G1 с JDK1.7.0, но виртуальная машина не распознает опцию G1YoungGenSize. В частности, когда я бегу:

java -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -XX:G1YoungGenSize=512m ...

Я получаю следующую ошибку:

Unrecognized VM option 'G1YoungGenSize=512m'
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.

Я также попробовал его со знаком "+" перед G1YoungGenSize, так как в некоторых документах G1 это указано так:

java -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -XX:+G1YoungGenSize=512m ...

Но я получаю ту же ошибку.

Я пробовал старые JDK, в том числе 1.6 с 18 по 21 обновление. Кажется, что G1YoungGenSize распознается с помощью обновления 20 и прерывается, начиная с 21 и до самой последней сборки 1.7 (снимок от 19 августа 2010 г.).

Кто-нибудь знает, что может быть причиной этой ошибки?

1 Ответ

6 голосов
/ 29 августа 2010

Похоже, что изменилось около 6 месяцев назад:

6928065: G1: использовать существующие параметры командной строки, чтобы установить размер молодого поколения http://hg.openjdk.java.net/jdk7/jdk7/hotspot/rev/a1c410de27e4

Изменения, сделанные для 1.6 здесь:

http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6928065

Чтобы быть совместимым с другими GC, G1 должен соблюдать UseAdaptiveSizePolicy, чтобы решить, нужно ли автоматически настраивать размер молодого поколения. NewSize / MaxNewSize (а также -Xmn) должны определять начальный максимальный размер.

...