2011-01-25 17 views
6

Esiste un modo per impostare la dimensione massima dell'heap java in modo programmatico anziché come argomento vm?impostazione programmata della dimensione massima dell'heap java

Qualcosa di simile:

System.getProperties().put("<heap variable>", "1000m"); 
+2

possibile duplicato di [Come aumentare la dimensione dell'heap java a livello di codice] (http://stackoverflow.com/questions/2073869/how-to-increase-java-heap-size-programmatically) – miku

risposta

7

Non con qualsiasi Hotspot JVM. I parametri dell'heap JVM possono essere specificati solo sulla riga di comando e vengono quindi riparati per tutta la durata della JVM.

Con le implementazioni Java Hotspot, l'unico modo per "modificare" la dimensione heap di un'applicazione è di riavviarlo in una nuova JVM con parametri della riga di comando diversi.

(Ricordo vagamente che JVM da parte di alcuni altri fornitori fare consentire ad alcuni parametri heap di essere cambiato in una JVM in esecuzione. Forse qualcuno può chiarire.)

0

È necessario comprendere la differenza tra lo spazio JVM e la ambiente in cui viene eseguito. Il parametro che hai menzionato (e qualsiasi altro parametro -X o -XX) sono impostazioni dell'ambiente fornite dall'ambiente che esegue la JVM.

In una macchina Windows XP, il SO Windows è l'iniziatore della JVM. Quindi JVM non dovrebbe essere in grado di modificare un parametro fornito dal sistema operativo. È logico.

@Stephen C, potresti avere ragione su alcune implementazioni VM che forniscono questa funzionalità, ma non sono sicuro.

Problemi correlati