Śledzenie czasu wykonywania linii

0

Cześć, czy istnieje narzędzie (w intellij/eclipse) pokazujące czas wykonywania konkretnych linii w kodzie, np. podczas trybu debugu. Czy jedyny sposób to po prostu porównywanie dwóch dat: sprzed wykonania linii/metody i po (co oczywiście jest bardzo brudnym sposobem, bo nie tylko czasochłonnym i wtórnym, ale też ingerującym bezpośrednio w kod programu) .

0

Profiler Twoim przyjacielem w przypadku takich problemów.
Korzystałem z kilku

  1. Visual VM -> prosty i łatwy w obsłudze, ale często się wiesza i zamula aplikacje
  2. xrebel -> fajny tool, ale nie jest darmowy no i chyba nie do końca to jest profiler z pierwszego zdarzenia
  3. https://github.com/jvm-profiling-tools/async-profiler -> ostatnio ktoś mi polecił to narzędzie i muszę przyznać, że bardzo fajnie się sprawdził aczkolwiek tutaj nie zobaczy się czasu wykonania metod tylko ich % udział w całości
    A no i jest jeszcze
    https://github.com/Netflix/flamescope którego nie używałem, ale z tego co przeczytałem fajnie pokazuje czasy wykonania metod.
0

@podroznik: miałem już pewne doświadczenia z VisualVM, ale jedynie aby podpiąć się do np. tomcata i śledzić zużycie pamięci, albo śledzić pracę wątków ogólnie (zrzuty pamięć oraz zrzuty wątków, wykresy zużycia), jednak nie wiem w jaki sposób przy pomocy visualvm określić czas wykonywania pewnych linii w metodzie. Jeżeli mógłbyś mnie nakierować wysyłając jakiś tutorial, albo artykuł w tym temacie byłbym Ci wdzięczny.

@podroznik Masz na myśli w kontekście VisalVM -> Sampler ?

0

W kontekście VisualVm korzystałem z zakładki Profiler/CPU. Tam wtedy Ci rozbija wywołanie metod i jesteś w stanie zobaczyć co najwięcej czasu pochłania. Nie do końca rozumiem co masz na myśli konkretne linie w metodzie?

1

Mierzy się całe metody a nie "linie". Twoich linii kodu w ogóle może nie być bo zostaną zoptymalizowane i co wtedy? :P

1 użytkowników online, w tym zalogowanych: 0, gości: 1