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

Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top