2010-08-23 5 views
6

J'utilise le garbage collector G1 avec JDK1.7.0, mais la machine virtuelle ne reconnaît pas l'option G1YoungGenSize. Plus précisément, quand je lance:La machine virtuelle Java ne reconnaît pas -XX: G1YoungGenSize?

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

Je reçois l'erreur suivante:

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

J'ai aussi essayé avec un signe « + » avant G1YoungGenSize, comme certains des documents G1 répertorie cette façon :

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

Mais j'obtiens la même erreur. J'ai essayé des JDK plus anciens, y compris 1.6 mise à jour 18 à 21. Il semble que G1YoungGenSize est reconnu par la mise à jour 20, et les pauses commençant par 21 et à travers la dernière version 1.7 (snapshot datée du 19 août 2010).

Est-ce que quelqu'un sait ce qui pourrait causer cette erreur?

+0

Pourriez-vous s'il vous plaît publier le résultat de 'java -version'? –

+0

Bien sûr. Il fonctionne avec: version java "1.6.0_20" Environnement d'exécution Java (TM) SE (build 1.6.0_20-b02) Java serveur HotSpot (TM) 64 bits (build 16.3-b01, mode mixte) Mais il ne fonctionne pas avec l'une de ces: java version "1.7.0-ea" Java (TM) SE Runtime Environment (build 1.7.0-ea-B106) Java HotSpot (TM) 64 bits serveur VM (build 19.0-b05, mode mixte) et java version "1.6.0_21" Java (TM) SE Runtime Environment (build 1.6.0_21-b06) Java HotSpot (TM) serveur VM (build 17.0 -b16, mode mixte) –

+0

Sans regarder le code source, je pense que G1YoungGenSize a été supprimé, peut-être temporairement. Les options '-XX' font cela. –

Répondre

6

Cela semble avoir changé il y a environ 6 mois:

6928065: G1: utiliser des paramètres de ligne de commande existants pour définir la jeune taille de génération http://hg.openjdk.java.net/jdk7/jdk7/hotspot/rev/a1c410de27e4

Les modifications apportées à 1.6 ici:

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.

Questions connexes