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.