2013-04-15 17 views
18

Zazwyczaj widzę te wszystkie karty w VisualVM lokalnie uruchomionych programów Java:Dlaczego VisualVM nie wyświetla wszystkich normalnych zakładek?

enter image description here

Mam jednak jeden program lokalny, który jest obecnie tylko pokazuje mi Przegląd i monitor (chociaż zazwyczaj pokazuje wszystkie te pokazane powyżej):

enter image description here

również interesujące jest to, że sama VisualVM nie przedstawia kartę Profil:

enter image description here

Wszystkie trzy pokazywane programy działają z tą samą maszyną JVM z tym samym środowiskiem Java Home.

Co kontroluje, które zakładki są pokazywane dla określonego programu? Jak mogę odzyskać je dla mojego programu, wyświetlając tylko Przegląd i Monitor?

Mam Visual VM 1.3.5 (najnowsze w tej dacie) i JDK 1.7.0_17.

+0

Istnieje specjalne połączenie https: //, które program tworzy na stronie zewnętrznej. Po wyłączeniu tej funkcji (więc nie są tworzone żadne żądania), wszystkie moje karty są wyświetlane w VisualVM. Hmm ... – jlarson

Odpowiedz

9

Być może trzeba włączyć porty jmx w swojej aplikacji. Spróbuj dodać te przełączniki na swoim VM i sprawdzić, czy wypustki pojawiają się znowu:

-Dcom.sun.management.jmxremote.port=6789 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false

+1

to są wszystkie programy lokalne - czy to nadal obowiązuje? – jlarson

+0

Kiedyś chciałem profilować mojego lokalnego jbossa iw tym przypadku tak, to miało znaczenie. Nie pamiętam, czy musiałbym dodać port jmx do VisualVM, czy też sam go znalazł. – Farzad

+0

Zaskakująco rozwiązało to dla mnie – Owen

12

Uważam, że jest to kwestia użycia niewłaściwej wersji JDK. W moim przypadku moja aplikacja działa na 64-bitowym JDK i zacząłem VisualVM od 32-bitowego JDK. Po uruchomieniu VisualVM z tego samego JDK, na którym działa moja aplikacja, wszystko było w porządku. Mam nadzieję, że ci to pomoże.

1

Co pracował dla mnie było określenie „Start profilowania z” klas. Jeśli zostawiam to puste, nie otrzymałem zakładki profilera. Kiedy to określiłem, zrobiłem. Powinienem chyba zauważyć, że była to aplikacja internetowa działająca pod Tomcat, więc jako klasę początkową określiłem org.apache.catalina.startup.**.

0

Sprawdź, które proxy jest wyłączone, jeśli używasz VisualVM do stosowania miejscowego

0

miałem podobny problem z brakujących kartę profiler w VisualVM. Używam Oracle JDK 1.8 i chcę profilować aplikację internetową działającą na Tomcat 8 (JPA, Spring, Hibernate, Vaadin, itp.).

Próbowałem wszystkich wyżej wymienionych rozwiązań i wielu innych znalezionych w Internecie, ale niestety, żaden z nich nie rozwiązał problemu z kartą profilera.

Więc przełączyłem się na Java Mission Control narzędzie profilujące (JMC + Flight Recorder), które jest częścią standardowego Oracle JDK (od JDK 1.7 aktualizacja 40) i działa świetnie.