Dopo la lettura già chiesto domanda sul tema e un sacco di googling io non sono ancora in grado di avere una visione chiara di -Xms opzioneJVM parametri heap
La mia domanda è: qual è la differenza tra il java -Xms=512m -Xmx=512m
e java -Xms=64m -Xmx=512m
?
Per ora ho la seguente risposta:
L'unica differenza è nel numero di garbage collection che verranno eseguiti durante la corsa di mia applicazione e il numero di allocazioni di memoria. Ho ragione ?
Ecco le mie ragioni per questa risposta:
impostando l'opzione -Xms
a 512m
non si traduca nella mia applicazione utilizza davvero 512M
di memoria fisica dopo l'avvio. Immagino che questo sia legato alla moderna gestione della memoria virtuale del SO e alle allocazioni di pagine pigre. (Ho notato che l'impostazione -Xms
a 512M
o 64M
non cambia affatto la memoria utilizzata iniziale riferito sia dai vertici su Linux o con il task manager in Windows)
qualcuno può aiutarmi a capire l'impatto di questa Xms
opzione o indicarmi i collegamenti che mi aiuteranno a capirlo?
Grazie in anticipo
Manu
Penso che la sintassi reale sia -Xms64m e non -Xms = 64m. Se mi sbaglio, per favore, torna indietro! – Burkhard
È venuto fuori durante la ricerca di alcuni dei punti migliori di jvm config. La risposta accettata qui è molto diversa dalla mia comprensione di questi valori. Sì, la maggior parte del SO renderà disponibili solo le pagine fisiche quando viene rilevato un errore di pagina minore mentre l'app tenta di accedere alla memoria che ha malloc'ed - ma Xms specifica la quantità iniziale di memoria malloced da jvm - che pone un limite superiore sul numero di pagine che possono essere assegnate * senza * l'app mallocà più memoria - e nel caso di Java, sarà solo malloc più memoria (fino a Xmx) se memoria insufficiente è resa disponibile da gc – symcbean
@symcbean Sono confuso . Sembra che la tua comprensione non sia molto diversa da quella che è nella risposta. Stai solo usando parole diverse, ma stai descrivendo esattamente lo stesso comportamento. – Turismo