2010-08-23 1 views
6

Я использую сборщик мусора G1 с JDK1.7.0, но VM не распознает вариант G1YoungGenSize. В частности, когда я бегу:Java VM не распознает -XX: 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 г.).

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

+0

Не могли бы вы вывести результат «java -version»? –

+0

Несомненно. Он работает с: java-версия «1.6.0_20» Рабочая среда Java (TM) SE (сборка 1.6.0_20-b02) 64-разрядная серверная виртуальная машина Java HotSpot TM (сборка 16.3-b01, смешанный режим) Но это не работает ни с одним из них: ява версия "1.7.0-еа" Java (TM) SE Runtime Environment (сборка 1.7.0-еа-B106) Java HotSpot (TM) 64-Bit Сервер VM (сборка 19.0-B05, смешанный режим) и ява версии "1.6.0_21" Java (TM) SE Runtime Environment (строительство 1.6.0_21-b06) Java HotSpot (TM) сервер VM (сборка 17.0 -b16, смешанный режим) –

+0

Не смотря на исходный код, я предполагаю, что 'G1YoungGenSize' был удален, возможно, временно. Параметры '-XX' делают это. –

ответ

6

Это выглядит изменился около 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

To be consistent with the other GCs, G1 should observe UseAdaptiveSizePolicy to decide whether to auto-tune the young generation size. NewSize/MaxNewSize (and also -Xmn) should dictate the initial max size.

Смежные вопросы