2012-11-01 22 views
5

Mam bezgłową aplikację Java, działającą na serwerze zdalnym jako proces typu demona.Jak profilować bezgłową aplikację Java, działającą zdalnie?

Chcę wyodrębnić informacje profilowania poziomu Java z procesu sortowania wyświetlanego przez JVisualVM. Na przykład powinien pokazywać czasy wywołania metod i tak dalej.

Jaki jest najlepszy sposób na zrobienie tego? Rozumiem, że JVisualVM nie profiluje podczas zdalnego łączenia.

Idealnie, informacje profilowania będą przechowywane w pliku do późniejszej inspekcji, w sposób podobny do generowania sterty Java (z jmap) i późniejszej analizy (z inspektorem sterty).

+2

Można to zrobić z profilers handlowych, ale nie wiem jak to zrobić z VisualVM. –

+1

Jeśli to najogólniejsza, obecna prawda, warto ją promować. –

+1

Jeśli nikt nie zna drogi, zrobię to. Być może model bezpieczeństwa Java, który pozwala wstrzykiwać kod na tym samym komputerze, ale nie od innego? –

Odpowiedz

1

Można użyć NetBeans profiler zdalną możliwość profilowania.

Remote Profilowanie

profilu aplikacji, która jest uruchomiona na innym systemie niż swojej NetBeans IDE. Pakiet zdalny profilera można zainstalować w systemie zdalnym, umożliwiając profilowanie aplikacji uruchamianej w tym systemie.

Rzeczywiście, VisualVM is based on it.

Obok różnych funkcji monitoringu, narzędzie zawiera wbudowany profiler oparciu o NetBeans Profiler. Podczas gdy interfejs użytkownika profilera w VisualVM wygląda na prosty (zwłaszcza w porównaniu z profilerem NetBeans), możliwości profilowania są prawie tak potężne, jak w NetBeans.

Oto szczegółowy wpis na blogu na temat Profiling a Java remote server using Netbeans.

+0

To odpowiada na pytanie. Myślę, że początkowo szukałem czegoś, co nagrywało i nie chciało się łączyć z procesem, ale nie było to jednoznaczne. Ale to odpowiada na zadane pytanie, więc miej kilka punktów;) –

Powiązane problemy