Chcę filtrować, które klasy są profilowane przez cpu w Javie VisualVm (wersja 1.7.0 b110325). W tym celu próbowałem pod Profiler -> Ustawienia -> CPU-Settings, aby ustawić "Tylko profil klasy" do mojego testowanego pakietu, który nie przyniósł żadnego efektu. Następnie próbowałem pozbyć się wszystkich klas java. * I sun. *, Ustawiając je w "Nie profiluj klas", co również nie miało żadnego efektu.Czy klasy filtrowania dla profilowania cpu działają w języku Java VisualVM?
Czy to po prostu błąd? Czy może czegoś brakuje? Czy jest w pobliżu praca? Mam na myśli inne niż:
- płatniczą dla lepszego profilera
- robi próbkowanie ręcznie (patrz One could use a profiler, but why not just halt the program?)
- przełącznik widoku połączeń drzewo, które nie jest dobre, ponieważ tylko w widoku Profiler daje mi procenty zużytego procesora na metodę.
Chcę to zrobić głównie w celu uzyskania połowy poprawnych procentów zużytego procesora na metodę. W tym celu muszę pozbyć się irytujących pomiarów, np. dla sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run()
(około 70%). Wielu użytkowników ma ten problem, patrz np.
- Java VisualVM giving bizarre results for CPU profiling - Has anyone else run into this?
- rmi.transport.tcp.tcptransport Connectionhandler consumes much CPU
- Can't see my own application methods in Java VisualVM.
Czy Twoim celem jest, aby kod działał tak szybko, jak to możliwe? lub po prostu uzyskać pewne procenty, niezależnie od tego, co mają na myśli? "Czas", jak jest powszechnie używany, jest wysoce niejednoznaczny. –
Tak, moim głównym celem jest przyspieszenie działania kodu. Chciałbym również oszacować, jak duża część kodu powinna ulec zmianie. Dlatego chcę uzyskać ogólny przegląd wszystkich gorących punktów i ich nasilenia. Myślę, że wyniki VisualVm byłyby do zaakceptowania w tym przypadku, pomimo używania czasu ściany - gdyby tylko te nieliczne klasy sun. * I java. * Nie zepsuły wszystkich statystyk. – DaveFar