commande JVM options de démarrage duplication
Question
Je l'ai trouvé un logiciel héritage que nous utilisons qui a ses propriétés de lancement malformé, il reçoit ces deux Xmx inégales comme propriétés:
java -jar myapp.jar -Xmx128m -Xmx512m
Je n'ai pas accès au code source lanceur (ne pas pouvoir le modifier), donc je demande, quel est l'impact de la duplication de ces paramètres? Puis-je laisser ce de cette façon, ou devrais-je inquiéter? Lequel sera appliqué?
La JVM utilisée est mise à jour JRE 6 18
La solution
En général, il est généralement cette dernière option qui obtient utilisée si un outil ne rejette pas un double, mais vous ne pouvez pas compter sur que si les documents de l'outil il.
Votre meilleur pari est de voir ce qui se passe avec votre machine virtuelle Java spécifique, par l'intermédiaire de Runtime
totalMemory
et maxMemory
:
public class HeapSize {
public static final void main(String[] args) {
Runtime rt = Runtime.getRuntime();
System.out.println("Total currently: " + rt.totalMemory());
System.out.println("Max: " + rt.maxMemory());
System.exit(0);
}
}
my machine virtuelle Java (Sun / Oracle 1.6.0_26-b03 sous Linux), cette dernière option prend effet:
$ java -Xmx16m HeapSize Total currently: 16121856 Max: 16121856 $ java -Xmx32m HeapSize Total currently: 32178176 Max: 32178176 $ java -Xmx16m -Xmx32m HeapSize Total currently: 32178176 Max: 32178176 $ java -Xmx16m -Xmx32m -Xmx128m HeapSize Total currently: 59113472 Max: 119341056
Autres conseils
Si je comprends bien ce qu'il utilisera le dernier réglage.