Pytanie Jak przekazać argumenty JVM do VisualVM?


Używam VisualVM z JDK 1.6.0_26 do profilowania aplikacji webowej Java działającej pod Tomcat, ale VisualVM często mówi mi, że nie ma wystarczającej ilości pamięci, aby zrobić migawkę, i użyć przełącznika -Xmx, aby zapewnić więcej pamięci dla Netbeans . Problem polega na tym, że uruchamiam VisualVM poza Netbeans, więc w jaki sposób mogę dostarczyć argumenty JVM do pliku jvisualvm.exe?


76
2018-03-05 17:14


pochodzenie




Odpowiedzi:


Powinien móc modyfikować ustawienia pamięci w %JDK_HOME%\lib\visualvm\etc\visualvm.conf

Xms i Xmx są w default_options linia.


115
2018-03-05 17:20



@MikePartridge - dobry połów - zaktualizuję ścieżkę do właściwej ... - Zack Macomber
On (mój egzemplarz :) OSX: /System/Library/Java/Support/VisualVM.bundle/Contents/Home/etc/visualvm.conf - Jonas N
@Zack Możesz to potwierdzić -J-Xms i -J-Xmx są właściwie poprawne nazwy opcji? Jest -J przedrostek konieczny, gdy są one określone w pliku conf? - GreenGiant
@GreenGiant Nie jestem pewien, czy są one, czy nie ... W mojej kopii visualvm.conf, mam -J-Xms24m & -J-Xmx256m więc zakładam, że to poprawne nazwy opcji. Możesz prawdopodobnie google jak sformatować visualvm.conf, aby uzyskać więcej informacji ... - Zack Macomber
@Zack mój plik conf jest taki sam jak również. Chciałem tylko potwierdzić, ponieważ Twoja odpowiedź nie zawierała odpowiedzi -J prefiks. - GreenGiant


lub myślę, że to też działa:

jvisualvm.exe -J-Xmx512m (lub dowolna ilość potrzebna)

-J w wierszu polecenia .exe dla ustawień jednorazowych lub pliku .conf zapisanego w drugiej odpowiedzi dotyczącej zmiany wartości domyślnych


41
2018-03-05 17:27



Nie mogłem zmusić tego do działania. próbowałem jvisualvm.exe -J-Xms256m -J-Xmx1024m z wiersza poleceń i podczas sprawdzania procesu mogłem zauważyć, że argumenty nie zostały zastosowane. - Mike Partridge
Po prostu próbowałem i wydaje się, że to dołączam. Widzę domyślne 192 miliony i również kolejny wpis na 1024m. Wygląda na to, że ta ostatnia ma pierwszeństwo. Jaką wersję JDK? - Kevin Welker
Używam wersji 1.6.0_26. Podczas korzystania z JConsole do inspekcji procesu VisualVM, sekcja argumentów VM na karcie Podsumowanie VM pokazuje wartości domyślne i wartości podane przeze mnie, ale podczas korzystania z VisualVM do inspekcji samego siebie, w Przeglądach> Argumenty JVM raportuje tylko wartości domyślne. - Mike Partridge
Używam wersji 1.6.0_20 i widzę 2 linie z listą Xmx. Pierwsza to wartość domyślna, a druga to nowa wartość. Skopiowałem twoją linię poleceń bezpośrednio z twojego komentarza powyżej tylko dla pewności. Dane wyjściowe w widoku przeglądu> JVM zawiera: -Xms24m -Xmx192m -Dsun.jvmstat.perdata.syncWaitMs=10000 -Xms256m -Xmx1024m - Kevin Welker


Zacząłem od

jvisualvm -J-Xms1024m -J-Xmx2048m

i zadziałało.


16
2017-09-11 17:27



Podoba mi się to, ponieważ lokalizacja pliku .conf zmieniła się, ale nadal działa i prawdopodobnie działałaby dla co najmniej niektórych innych programów Java. Wbrew powyższym komentarzom nie jest to trudne dla użytkowników komputerów Mac. Świat korzysta z Google, który nas tu sprowadza. - George Colpitts
Jak zauważono w komentarzach poniżej, wewnątrz jvisualvm, gdy patrzysz na argumenty VM, wydaje się, że nie działa, ale robi to. Nie otrzymuję już błędu OOM. - George Colpitts


W mac, możesz skonfigurować je, edytując ten plik.

/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"

13
2018-03-06 15:09



Proszę zachować odpowiedź koncentruje się na rozwiązaniu. Jeśli chcesz dodać meta-informacje, zrób to w komentarzu. - Martijn Pieters♦
I z oznaczonym pytaniem Windows, twoja odpowiedź będzie trudna do znalezienia dla użytkowników komputerów Mac. Zastanów się, czy nie jest to nowe pytanie tak czy inaczej. - Martijn Pieters♦
Nie głosowałem w sprawie tego postu, proszę nie wyciągać pochopnych wniosków. - Martijn Pieters♦
Dlaczego miałbyś niepotrzebnie edytować tę odpowiedź? Aby zdobyć więcej reputacji? Odpowiedź była już skupiony i krystalicznie czysty. Przy okazji, przy każdej z twoich poprawek mam obniżkę! - aspdeepak
zrobiłem jeden edytuj tutaj i wyjaśnij, dlaczego to zrobiłem. Jeśli chcesz nalegać, by dodawać tylko do Maca odpowiedź na pytanie skierowane do użytkowników Windowsa przy pomocy znaczników, jest to w porządku, ale nie usuwaj z nich meta-informacji; Twój post powinien zawierać tylko rozwiązanie, a nie głosowanie. - Martijn Pieters♦


Dla Mac OSX 10.12+ 

Jeśli pobrałeś visualvm dmg od https://visualvm.github.io/download.html i przeniosłem go do Applications informator. Możesz znaleźć plik konfiguracyjny visualvm.conf pod lokalizacją Applications/VisualVM.app/Contents/etc/visualvm.conf. W tym pliku konfiguracyjnym możesz zmienić

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

do (np.)

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


0
2017-12-20 19:11