2010-08-23 14 views
6

Sto utilizzando il garbage collector G1 con JDK1.7.0, ma la VM non riconosce l'opzione G1YoungGenSize. In particolare, quando ho eseguito:Java VM non riconosce -XX: G1YoungGenSize?

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

ottengo il seguente errore:

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

Ho anche provato con un segno "+" prima G1YoungGenSize, alcuni dei documenti G1 elenca in questo modo :

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

Ma ho lo stesso errore.

Ho provato JDK più vecchi, compresi gli aggiornamenti da 18 a 21. Sembra che G1YoungGenSize sia riconosciuto tramite l'aggiornamento 20 e le interruzioni che iniziano con 21 e con l'ultima versione 1.7 (snapshot del 19 agosto 2010).

Qualcuno sa che cosa potrebbe causare questo errore?

+0

Potresti pubblicare il risultato di 'java -version'? –

+0

Sicuro. Funziona con: versione java "1.6.0_20" Java (TM) SE Runtime Environment (build 1.6.0_20-b02) Java HotSpot (TM) Server VM a 64 bit (build 16.3-b01, modalità mista) ma non funziona con uno di questi: versione java "1.7.0-ea" Java (TM) SE Runtime Environment (build 1.7.0-ea-B106) Java HotSpot (TM) a 64 bit Server VM (19,0 costruire-b05, modalità mista) e versione java "1.6.0_21" Java (TM) SE Runtime Environment (Build 1.6.0_21-b06) Java HotSpot (TM) Server VM (build 17.0 -b16, modalità mista) –

+0

Senza guardare il codice sorgente, suppongo che 'G1YoungGenSize' sia stato rimosso, forse temporaneamente. Le opzioni '-XX' lo fanno. –

risposta

6

questo sembra aver cambiato circa 6 mesi fa:

6928065: G1: utilizzare i parametri della riga di comando esistenti per impostare la dimensione giovani generazioni http://hg.openjdk.java.net/jdk7/jdk7/hotspot/rev/a1c410de27e4

Le modifiche apportate per 1,6 qui:

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.

Problemi correlati