Kurs: Analizowanie danych profilowania

Cele

Analiza danych zebranych podczas profilowania procesu Java następującymi metodami (przy użyciu widoków profilowania i rejestrowania dostępnych w perspektywie Profilowanie i rejestrowanie):

Wymagany czas

1 godzina

Przed rozpoczęciem

Przed rozpoczęciem tego kursu wykonaj następujące czynności:

  1. Zainstaluj platformę Eclipse łącznie z platformą narzędzi testowych i sprawdzających wydajność (Test and Performance Tools Platform - TPTP).
  2. Przygotuj przykładowy plik profilowania (hcframe.jar) do zaimportowania. Plik ten powinien znajdować się w następującym katalogu:
    katalog_instalacyjny_TPTP\eclipse\plugins\org.eclipse.tptp.platform.collection.framework_4.0.0

Opis

W czasie tego kursu użyte zostaną różne widoki profilowania i rejestrowania do przeanalizowania przykładowej klasy PerformanceExample.class. Przykład powoduje otwarcie ramki zawierającej dwa przyciski.

Zostaną wykonane następujące czynności:

  1. Otwieranie perspektywy Profilowanie i rejestrowanie w środowisku roboczym
  2. Profilowanie klasy PerformanceExample
  3. Analizowanie informacji profilowania

Aby zaktualizować widoki podczas monitorowania aplikacji, należy kliknąć przycisk Odśwież widoki Przycisk z ikoną.

Otwieranie perspektywy Profilowanie i rejestrowanie w środowisku roboczym

W menu Okna kliknij opcję Otwórz perspektywę > Inne > Profilowanie i rejestrowanie.

Profilowanie klasy PerformanceExample

Aby przeprowadzić profilowanie klasy PerformanceExample, wykonaj następujące czynności:

  1. Kliknij menu rozwijane Profil  Przycisk ze stylizowaną ikoną i wybierz opcję Profiluj. Zostanie otwarte okno dialogowe Uruchamianie profilu.
  2. Kliknij dwukrotnie pozycję Zewnętrzna aplikacja Java, aby utworzyć nową konfigurację.
  3. Przejdź na kartę Główne.
  4. Wpisz org.eclipse.hyades.test.collection.framework.PerformanceExample w polu Nazwa klasy.
  5. Kliknij opcję Dodaj plik JAR, aby dodać plik JAR zawierający tę klasę.
  6. Wybierz plik katalog_instalacyjny_TPTP\eclipse\plugins\org.eclipse.tptp.platform.collection.framework_4.0.0\hcframe.jar.
  7. Kliknij przycisk Otwórz. Zostanie dodany plik JAR.
  8. Kliknij kartę Monitor. Na tej karcie można określić kryteria profilowania.
  9. Na karcie Monitor rozwiń węzeł o nazwie Profilowanie Javy, wybierz opcję Podstawowa analiza pamięci i zaznacz pole wyboru obok niej. Spowoduje to dodanie informacji dotyczących pamięci do listy typów informacji, które powinny być zbierane od aplikacji.
  10. Wybierz pozycję Analiza czasu wykonania i zaznacz pole wyboru obok niej. Po zaznaczeniu tej opcji można używać widoków statystycznych do analizy informacji związanych z czasem. Aby można było używać widoków Przepływ wykonania i Wywołania metod, konieczne jest zbieranie szczegółowych informacji graficznych dotyczących wykonania. Celem przykładu jest pokazanie wszystkich widoków profilowania, w tym widoków Przepływ wykonania i Wywołania metod, więc wybierając opcję Analiza czasu wykonania kliknij pozycję Edytuj opcje i w oknie dialogowym edycji opcji profilowania wybierz opcję Pokaż przepływ wykonania w formie graficznej. Ponadto kliknij pole wyboru Zbieraj informacje o klasach brzegowych wykluczonych przez filtry i ustaw opcję Głębokość klas brzegowych na wartość 1. Kliknij przycisk Zakończ.
  11. Strona Zestaw filtrów profilowania pozwala określić podzbiór analizowanych informacji. Jest to przydatne, jeśli pożądane jest odfiltrowanie klas lub pakietów niezawierających się w granicach, które mają być analizowane.
    Wybierz kolektor danych Profilowanie Javy i kliknij Edytuj opcje. Zostanie otwarte okno dialogowe Zestaw filtrów. W obszarze Treść wybranego zestawu filtrów kliknij przycisk Dodaj, aby dodać klasy lub pakiety, dla których mają być zbierane dane. Zostanie otwarte okno dialogowe Dodawanie filtru.
  12. Aby przeprowadzić profilowanie tej klasy, wpisz org.eclipse.hyades.test.collection.framework.* w polu Klasa.
  13. Określ opcję Nazwa metody jako *, aby włączyć tylko metody związane z tym przykładem.
  14. Kliknij przycisk OK.Kryterium filtru zostanie dodane do listy treści.
  15. Aby wykluczyć z listy treści filtru inne istniejące klasy, kliknij pozycję Włącz w kolumnie Reguła danej klasy i zmień jej wartość na Wyklucz.
  16. Kliknij przycisk Dalej, aby przejść do karty Ograniczenia. Na tej karcie można sterować ilością zbieranych danych, określoną albo przez upływ czasu, albo liczbę wywołań metod. Zaakceptuj wartości domyślne. Kliknij przycisk Zakończ, aby zamknąć okno i zastosować zmiany.
  17. Kliknij kartę Miejsce docelowe. Domyślnymi zasobami profilowania są Projekt_profilowania i Monitor_domyślny; można ich użyć do przechowania danych z tej sesji profilowania.
  18. Kliknij przycisk Profiluj.
  19. Zostaną utworzone wymagane zasoby profilowania, a w widoku monitora profilowania zostanie wyświetlony agent i proces. 
  20. Włącz opcję wyświetlania monitorów, wybierając opcję Układ rozproszony, tak jak pokazano to na poniższym zrzucie ekranu. Zostanie wyświetlony monitor grupujący dane oraz komputer, na którym działa środowisko robocze.

    Monitor profilowania przedstawiający hierarchię zasobów oraz menu rozwijane umożliwiające zaznaczanie zasobów w celu ich ukrycia

Analizowanie informacji profilowania

Wyświetlanie zachowania przy wykonywaniu w pewnym okresie

Wykonanie aplikacji można sprawdzić, korzystając z widoku i tabeli przepływu wykonania. Widok ten udostępnia reprezentację wykonania całego programu w formie graficznej lub tabelarycznej. W widoku Przepływ wykonania czas jest pokazany na osi pionowej. Tabela przepływu wykonania jest otwierana pod widokiem Przepływ wykonania i zawiera listę poszczególnych wątków oraz metod przez nie wywoływanych.

  1. W widoku Monitor profilowania wybierz monitor, kliknij go prawym przyciskiem myszy i wybierz opcję Otwórz za pomocą > Przepływ wykonania, aby otworzyć widok Przepływ wykonania. Zostanie otwarty widok przepływu wykonania.
  2. W celu zbadania konkretnej metody kliknij ją, aby ją wybrać. Wszystkie metody wywoływane przez tę metodę zostaną wyróżnione kolorem żółtym. Długość podświetlonego obszaru w pionie oznacza podstawowy czas dla metody. Dokładna wartość podstawowego czasu jest wyświetlana w wierszu statusu.

     Widok przepływu wykonania z dwiema metodami

    Umieszczenie kursora na obiekcie w tym widoku powoduje wyświetlenie szczegółowych informacji na pasku statusu u dołu okna.

  3. Użyj narzędzia Powiększ Przycisk z ikoną, aby włączyć kursor, a następnie wskaż i kliknij obszar, który ma zostać powiększony. 

Uwaga: Aby zaktualizować widoki podczas monitorowania aplikacji, należy kliknąć przycisk Odśwież widoki Przycisk z ikoną.

Identyfikacja aktywnych wątków

W widoku przepływu wykonania każdy wątek zawiera okresy aktywności, które można zidentyfikować na podstawie dużej liczby wywołań metod. W postaci symbolicznej pierwsza wywołana metoda jest oznaczona paskiem, a kolejne wywoływane przez nią metody są oznaczone kolejnymi paskami wyświetlanymi z jej prawej strony. Sekwencja wywołań metod rozwija się od strony lewej do prawej; również aktywne części wątku identyfikuje się w tym kierunku.

Po wybraniu całej sekcji przedstawiającej sekwencję wywołań metod w wierszu statusu wyświetlany jest podstawowy czas wymagany do wykonania tej sekwencji. Aby sprawdzić podstawowy czas aktywności wątku, należy znaleźć różnicę między następującymi czasami:

  1. Wskaż górną linię poziomą zaznaczonego na żółto obszaru, aby wyświetlić w wierszu statusu odpowiedni czas podstawowy.
  2. Podobnie wskaż dolną krawędź zaznaczonego na żółto obszaru (obejmującego okres wykonania, w którym sekwencja metod jest aktywna), a następnie sprawdź podstawowy czas w tym punkcie.

Wskazówki

Identyfikacja często wywoływanych metod

Aby zidentyfikować często wywoływane metody:

  1. Użyj narzędzia Powiększenie Przycisk z ikoną, aby powiększyć sekwencję wywołań metod.
  2. W wybranym obszarze poszukaj pasków tego samego koloru. Paski te oznaczają metody z tej samej instancji klasy, które zostały wywołane wielokrotnie.
  3. Sprawdź długość pasków różnych kolorów (z których każdy reprezentuje metodę). Im dłuższy pasek, tym dłuższy czas wykonania tej metody.

Pomiar czyszczenia pamięci

Zazwyczaj nie można stwierdzić, czy w przypadku obiektu nastąpiło czyszczenie pamięci, sprawdzając paski w wątku użytkownika w tym widoku.

Wykonaj następujące czynności:

  1. Wątek czyszczenia pamięci jest domyślnie ukryty. Włącz go, wybierając opcję Wątki > Czyszczenie pamięci w menu Kontekst w widoku.
  2. Sprawdź skrajną lewą kolumnę w tym widoku. Kolumna ta jest zarezerwowana dla wątku czyszczenia pamięci i nosi nazwę kolumny wątku czyszczenia pamięci.
  3. Sprawdź, czy w kolumnie wątku czyszczenia pamięci znajduje się pojedynczy, cienki prostokąt. Prostokąt najprawdopodobniej będzie znajdował się znacznie poniżej większości wywołań metod w obiekcie. Prostokąt ten jest wyświetlany w kolumnie wątku czyszczenia pamięci zawsze, gdy w przypadku obiektu nastąpiło czyszczenie pamięci.

Identyfikacja faz wykonywania programu

Identyfikacja fazy inicjowania

  1. Użyj narzędzia Powiększenie Przycisk z ikoną, aby powiększyć sekwencję wywołań metod w górnej części głównego wątku.
  2. Zwróć uwagę na metody z oznaczeniem -init-.
  3. Kliknij taką metodę, aby ją wybrać. Pasek statusu zostanie zaktualizowany wskazując, że metoda ta bierze udział w inicjowaniu (przypisywaniu wartości do zmiennych używanych w aplikacji).

Analizowanie metod przy użyciu widoku wywołań metod

  1. W monitorze profilowania wybierz monitor lub agenta. Kliknij prawym przyciskiem myszy, a następnie wybierz opcję Otwórz za pomocą > Przepływ wykonania. Zostanie wyświetlony widok przepływu wykonania.
  2. Wybierz metodę do zbadania, kliknij ją prawym przyciskiem myszy, a następnie wybierz opcję Pokaż wywołanie metody.
  3. Użyj narzędzia Powiększenie Przycisk z ikoną, aby powiększyć sekcję ekranu. Paski mają kolory oznaczające klasy i są połączone poziomymi liniami reprezentującymi wywołania metod.
  4. Wybierz metodę, klikając jej nazwę. 
  5. Kliknij przycisk Odśwież widoki Przycisk z ikoną, aby wyświetlić aktualne informacje.
  6. Zwróć uwagę na wiersz:
    Wiersz statusu wyświetlający nazwę metody i liczby 1/1

    W tym wierszu wyświetlana jest nazwa metody oraz liczby n/m, gdzie n oznacza numer aktualnie wyświetlanego wywołania z łącznej liczby m wywołań.
  7. Klikaj przyciski Poprzedni Przycisk z ikoną i Następny Przycisk z ikoną, aby przejrzeć wszystkie wywołania wybranej metody (lub poszczególne komunikaty dla wybranego obiektu). Ułamek na pasku narzędzi zmienia się, informując o numerze wyświetlanego wywołania.

Znajdowanie metody wywołującej metodę

Aby dowiedzieć się, co wywołuje metodę, w widoku wywołań metod wykonaj następujące czynności:

  1. Aby wyświetlić metodę wywołującą daną metodę, kliknij przycisk Pokaż metodę wywołującą Przycisk z ikoną. Z lewej strony zostanie wyświetlona metoda wraz z jej metodą wywołującą.
  2. Aby wyświetlić więcej szczegółów na temat programu wywołującego metodę dla każdego nowego wywołania, które jest wyświetlane, umieść kursor na pasku reprezentującym metodę wywołującą w tym widoku. W wierszu statusu zostaną wyświetlone informacje o metodzie wywołującej.
  3. Aby sprawdzić, jakie metody są wywoływane przez wybraną metodę, kliknij przycisk Pokaż wywoływaną metodę Przycisk z ikoną