/ / Jak zmniejszyć wpływ użycia sterty w VisualVM? - java, wydajność, jmx, visualvm

Jak zmniejszyć wpływ użycia sterty w VisualVM? - java, wydajność, jmx, visualvm

Próbuję zoptymalizować wykorzystanie pamięci mojegopodanie. Niestety, uruchomienie aplikacji za pomocą polecenia -Dcom.sun.management.jmxremote i połączenie go za pomocą VisualVM ma całkiem duży wpływ na użycie sterty. Na początku myślałem, że to jest mój problem z aplikacją, dopóki nie napisałem bardzo prostego programu, aby potwierdzić, że rzeczywiście jest to obciążenie związane z JMX. Poniżej znajduje się obraz działania.

Po przeczytaniu to, Rozumiem, że jest to spowodowanesposób VisualVM pobiera dane, czyli ciągłe odpytywanie podłączonej aplikacji. Potwierdziłem to, patrząc na próbnik pamięci VisualVM Wątek połączenia RMI TCP (n) alokuje 180kb / s.

Moje pytanie brzmi, czy istnieje sposób na zmniejszenie stertywpływ VisualVM na wykorzystanie? Zmiana interwału odpytywania może nie być lepsza, ponieważ jestem zainteresowany informacją o sterty.Jeśli to nie jest możliwe, możemy wykluczyć dane używane dla VisualVM? Przynajmniej chcę być bardziej skupiony na mojej aplikacji.

Uruchomiony kod

Object object = new Object();
synchronized (object) {
object.wait();
}

Działanie monitora sterty VisualVM

wprowadź opis obrazu tutaj

Odpowiedzi:

3 dla odpowiedzi № 1

Najprostszą rzeczą do zrobienia jest zmniejszenie interwału sondowania. Wpływ jest proporcjonalny do szybkości pobierania danych.

Używam YourKit, który robi wszystko w pamięci natywnej, więc nie ma wpływu na stertę.