Come si forniscono argomenti JVM a VisualVM?


97

Sto usando VisualVM da JDK 1.6.0_26 per profilare una webapp Java in esecuzione su Tomcat, ma VisualVM spesso mi dice che non ha memoria sufficiente per scattare un'istantanea e per utilizzare l'opzione -Xmx per fornire più memoria a Netbeans . Il problema è che sto eseguendo VisualVM al di fuori di Netbeans, quindi come posso fornire argomenti JVM a jvisualvm.exe?

Risposte:


139

Dovrebbe essere possibile modificare le impostazioni della memoria in %JDK_HOME%\lib\visualvm\etc\visualvm.conf

Xmse Xmxsono in default_optionslinea.


2
Su (la mia copia di :) OSX: /System/Library/Java/Support/VisualVM.bundle/Contents/Home/etc/visualvm.conf
Jonas N

@Zack Puoi confermarlo -J-Xmse -J-Xmxsono effettivamente i nomi delle opzioni corretti? Il -Jprefisso è necessario quando questi sono specificati nel file conf?
GreenGiant

@GreenGiant Non sono sicuro che lo siano o meno ... Nella mia copia di visualvm.conf, ho -J-Xms24me -J-Xmx256mquindi presumo che siano i nomi delle opzioni corretti. Probabilmente potresti cercare su google come formattare visualvm.conf per maggiori informazioni ...
Zack Macomber

@Zack anche il mio file di configurazione è lo stesso. Volevo solo confermare poiché la tua risposta non includeva il -Jprefisso.
GreenGiant

Cordiali saluti, su Linux (Mint, presumibilmente anche Ubuntu) è /usr/lib/jvm/java-6-sun/lib/visualvm/etc/visualvm.conf.
David Moles

53

o penso che funzioni anche questo:

jvisualvm.exe -J-Xmx512m (o qualunque importo ti serva)

-J sulla riga di comando .exe per le impostazioni una tantum, o il file .conf annotato nell'altra risposta per la modifica delle impostazioni predefinite


Non sono riuscito a farlo funzionare. Ho provato jvisualvm.exe -J-Xms256m -J-Xmx1024mdal prompt dei comandi e, durante l'ispezione del processo, ho potuto vedere che gli argomenti non erano applicati.
Mike Partridge

3
L'ho appena provato e sembra aggiungerlo. Quindi vedo il 192m predefinito e anche un'altra voce per 1024m. Sembra che quest'ultimo abbia la precedenza. Quale versione JDK?
Kevin Welker

Sto usando 1.6.0_26. Quando si utilizza JConsole per ispezionare il processo VisualVM, la sezione Argomenti VM nella scheda Riepilogo VM mostra i valori predefiniti e i valori forniti, ma quando si utilizza VisualVM per ispezionare se stesso, in Panoramica> Argomenti JVM riporta solo i valori predefiniti.
Mike Partridge

Sto usando 1.6.0_20 e vedo 2 righe che elencano Xmx. Il primo è il valore predefinito e il secondo è il nuovo valore. Ho copiato la tua riga di comando direttamente dal tuo commento sopra solo per esserne certo. Output in Overview> JVM include:-Xms24m -Xmx192m -Dsun.jvmstat.perdata.syncWaitMs=10000 -Xms256m -Xmx1024m
Kevin Welker

31

Ho iniziato con

jvisualvm -J-Xms1024m -J-Xmx2048m

e ha funzionato.


Mi piace perché la posizione del file .conf è cambiata ma funziona ancora e presumibilmente funzionerebbe per almeno alcuni altri programmi Java, contrariamente ai commenti sopra, questo non è difficile da trovare per gli utenti Mac. Il mondo usa Google che ci porta qui.
George Co,

Come notato nei commenti qui sotto, all'interno di jvisualvm quando guardi gli argomenti VM sembra che non funzioni ma funziona. Non ricevo più un errore OOM.
George Co,

22

In mac, puoi configurarli modificando questo file.

/Applications/VisualVM.app/Contents/Resources/visualvm/etc/visualvm.conf

visualvm_default_options="-J-client -J-Xms4096m -J-Xmx5120m -J-XX:+IgnoreUnrecognizedVMOptions -J-Dnetbeans.accept_license_class=com.sun.tools.visualvm.modules.startup.AcceptLicense -J-Dsun.jvmstat.perdata.syncWaitMs=10000 -J-Dsun.java2d.noddraw=true"

Per favore mantieni la tua risposta focalizzata sulla soluzione . Se vuoi aggiungere meta-informazioni, fallo in un commento per favore.
Martijn Pieters

E con la domanda contrassegnata da finestre , la tua risposta sarà difficile da trovare per gli utenti Mac. Considerare la possibilità di una nuova domanda in ogni caso .
Martijn Pieters

Non ho votato questo post, per favore non saltare alle conclusioni.
Martijn Pieters

Perché dovresti apportare una modifica non necessaria a questa risposta? Per guadagnare qualche reputazione in più? La risposta era già mirata e cristallina . A proposito, con ciascuna delle tue modifiche ho una valutazione negativa!
aspdeepak

2
Ho apportato una modifica qui e ho chiarito perché l'ho fatto. Se vuoi insistere per aggiungere una risposta solo per Mac a una domanda rivolta agli utenti Windows tramite tag, va bene, ma tieni fuori le meta informazioni; il tuo post dovrebbe contenere solo una soluzione, non un consiglio di voto.
Martijn Pieters

0

Per Mac OSX 10.12+

Se hai scaricato visualvm dmgda https://visualvm.github.io/download.html e l'hai spostato nella Applicationsdirectory. È possibile trovare il file di configurazione visualvm.confnella posizione Applications/VisualVM.app/Contents/etc/visualvm.conf. In questo file di configurazione è possibile modificare il file

visualvm_default_options="-J-client -J-Xms24m -J-Xmx256m

a (ad esempio)

visualvm_default_options="-J-client -J-Xms24m -J-Xmx2048m

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.