Domanda

Considerando la seguente riga di comando

java -Xms128m -Xms256m myapp.jar

Quali impostazioni si applicheranno per la memoria JVM minima (opzione Xms): 128m o 256m

È stato utile?

Soluzione

dipende dalla JVM, forse la versione ... forse anche il numero di carta clip di avere sulla scrivania al momento. Si potrebbe anche non funzionare. Non farlo.

Se è fuori dal tuo controllo, per qualche motivo, compilare ed eseguire questo stesso modo che ci si esegue il vaso. Ma attenzione, basandosi su l'ordine delle opzioni è una pessima idea.

public class TotalMemory
{
    public static void main(String[] args)
    {
         System.out.println("Total Memory: "+Runtime.getRuntime().totalMemory());
         System.out.println("Free Memory: "+Runtime.getRuntime().freeMemory());
    }
}

Altri suggerimenti

Come sempre, controllare l'implementazione specifica locale JVM ma qui è un modo rapido per controllare dalla riga di comando, senza dover codice.

> java -version; java -Xmx1G -XX:+PrintFlagsFinal -Xmx2G 2>/dev/null | grep MaxHeapSize

java version "1.8.0_25"
Java(TM) SE Runtime Environment (build 1.8.0_25-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.25-b02, mixed mode)
uintx MaxHeapSize         := 2147483648        {product}

Quindi, si vedrà in questo caso, la seconda istanza dell'argomento (2G) è quello che ha la precedenza (almeno in 1.8) e che è stata la mia esperienza con la maggior parte delle altre versioni moderne pure.

L'IBM JVM considera l'istanza più a destra di un argomento come il vincitore. Non posso parlare per HotSpot, etc ..

Lo facciamo come ci sono righe di comando spesso profondamente nidificate da file batch in cui la gente può solo aggiungere fino alla fine, e vogliono fare che il vincitore.

FTR, OpenJDK 1.7 sembra anche a prendere il valore più a destra, almeno per -Xms.

Scommetto che è la seconda. Gli argomenti sono di solito elaborate nell'ordine:

for( int i=0; i<argc; i++ ) {
  process_argument(argv[i]);
}

Ma se io stessi scrivendo argomento Java parser, mi lamento sul conflitto argomenti.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top