Analizuj profile

Profil, według wikipedii, "jest formą dynamicznej analizy programu, która mierzy, na przykład, przestrzeń (pamięć) lub złożoność czasu programu, wykorzystanie konkretnych instrukcji lub częstotliwość i czas trwania wywołań funkcji". Dzięki temu profiler jest programem do generowania takiego profilu w celu przeprowadzenia natychmiastowej lub późniejszej analizy.

W większości przypadków reguła profilująca jest używana przez programistów do identyfikowania problemów z wydajnością lub wąskich gardeł w kodzie. Reguły profilujące zostały zaprojektowane w taki sposób, aby umożliwić programistom odkopywanie kodu aż do pojedynczej linii kodu, która działa powoli lub intensywnie korzysta z zasobów. Ponieważ profilowanie może być tak zaawansowane, jak identyfikowanie możliwości optymalizacji kodu, jest ono często używane tylko przez programistów w środowiskach programistycznych, gdy już istnieje poważny problem. Nawet jeśli programista chce uruchomić profilowanie w środowisku produkcyjnym, uzyskanie dostępu do środowiska produkcyjnego w celu dołączenia profilera może być trudne.

Instana AutoProfile™ automatycznie przyłącza się do działającego procesu bez konieczności restartowania lub rekonfiguracji. Za pomocą funkcji AutoProfileużytkownicy mogą stale analizować wydajność na poziomie kodu, wykrywać wąskie gardła w kodzie produkcyjnym, wizualizować wydajność za pomocą wykresu płomieniowego i kopać głęboko w "gorące ścieżki" aplikacji.

Aby sprawdzić profile, przejdź do widoku Analiza nieograniczona , a następnie przejdź do widoku Profile.

Ciągła analiza wydajności na poziomie kodu w środowisku produkcyjnym

AutoProfile automatycznie i w sposób ciągły profiluje sposób działania kodu w środowisku produkcyjnym bez konieczności konfigurowania. Funkcja AutoProfile jest przeznaczona do ujawniania wąskich gardeł w kodzie i raportowania profili procesora i rywalizacji. Profile procesora umożliwiają programistom odkrycie, która metoda intensywnie obciąża procesor, dzięki czemu mogą wydajnie i precyzyjnie zoptymalizować kod. Profile rywalizacji pokazują, które zsynchronizowane dyrektywy powodują długi czas oczekiwania, nieefektywne wykorzystanie możliwości wielowątkowości procesora i prowadzą do złej ogólnej wydajności.

Wizualizuj jako wykres płomienia

AutoProfile wizualizuje wszystkie profile jako wykres płomieniowy, dzięki czemu łatwiej jest dokładnie sprawdzić, gdzie wykorzystywane są zasoby. Słupki na wykresie płomieniowo-płomieniowym są dostosowywane do ilości zużytych zasobów. Ponadto wykres jest uporządkowany chronologicznie od góry do dołu. Instana rozszerza profile o cenne wielkości mierzone, takie jak wykorzystanie procesora i aktywność czyszczenia pamięci. W celu udostępnienia kontekstu niezbędnego do zrozumienia wpływu profilu.

Znajdź 'gorącą ścieżkę' w widoku drzewa

Instana udostępnia widok drzewa wszystkich profili, wystarczy kliknąć znak plus, aby rozwinąć obszar zainteresowania. To sprawia, że szybko i łatwo znaleźć "gorącą ścieżkę" w kodzie. Na przykład można szybko kliknąć profile, aby rozwinąć ścieżkę, która pokazuje, jaki kod wykorzystuje trzydzieści procent łącznego wykorzystania procesora, dzięki czemu można poprawić i zoptymalizować kod.

Zanurz się do kodu (tylko Java)

Otwórz dokładny kod powodujący problem z poziomu wykresu płomienia lub widoku drzewa. Można filtrować według nazwy pakietu lub klasy, aby szybko znaleźć początek kodu w ścieżce kodu. Wystarczy kliknąć odsyłacz, aby przejść bezpośrednio do wiersza kodu, na którym należy się skupić.

AutoProfile Instany doskonale wpisują się w najlepsze w swojej klasie możliwości optymalizacji wydajności. Narzędzia AutoProfile i Unbounded Analytics™ udostępniają programistom wszystkie informacje potrzebne im w zasięgu ręki, aby natychmiast znaleźć podstawową przyczynę problemu lub rywalizacji o zasoby. To sprawia, że optymalizacja wydajności aplikacji i usług, w celu zapewnienia jak najlepszego doświadczenia klienta.

Typy profili

Możliwości profilowania zależą w dużym stopniu od języków, środowisk wykonawczych i wersji. Ze względu na różnice w implementacji mechanizmów próbkowania i narzędzi, typy profili i ich dostępność różnią się w różnych językach i środowiskach wykonawczych. Obecnie obsługiwane typy profili są podsumowane w tabelach w następujący sposób.

Pod względem struktury profile są podobne. Składają się one ze ścieżek wykonywania kodu często reprezentowanych na wykresie wywołań lub w drzewie wywołań z pewnymi statystykami dla każdego węzła, takimi jak liczba trafień, kilobajty lub milisekundy. Ścieżka kodu jest śledzeniem wywołań metod podobnych do śledzenia stosu wyjątków.

Profile Java

Typ profilu Opis
Wykorzystanie procesora Profile procesora pokazują użycie procesora dla każdej ścieżki kodu. Reguła profilująca procesora działa w oparciu o statystycznie próbkowanie wykonania procesu.
Kontencja Profile rywalizacji pokazują, gdzie zsynchronizowany kod oczekuje na inne wątki. Czas oczekiwania jest agregowany dla każdej ścieżki kodu.

Profile Node.js

Typ profilu Opis
Wykorzystanie procesora Profile procesora pokazują użycie procesora dla każdej ścieżki kodu. Reguła profilująca procesora działa w oparciu o statystycznie próbkowanie wykonania procesu.
Wywołania asynchroniczne Profile wywołań asynchronicznych wyświetlają zagregowany widok oczekiwań na wywołania asynchroniczne dla ścieżek kodu, w których wykonywane są te wywołania asynchroniczne.
Współczynnik przydziału pamięci Profile współczynnika przydziału pamięci przedstawiają ilość pamięci przydzielonej na jednostkę czasu zagregowaną przez ścieżki kodu, w której dokonano przydziału.

Profile Golang

Typ profilu Opis
Wykorzystanie procesora Profile procesora pokazują użycie procesora dla każdej ścieżki kodu. Reguła profilująca procesora działa w oparciu o statystycznie próbkowanie wykonania procesu.
Połączenia blokujące Profile połączeń blokujących przedstawiają zagregowany widok połączeń blokujących, tzn. połączeń oczekujących na IO, kanał itp. dla każdej ścieżki kodu.
Przydzielanie pamięci Profile przydzielania pamięci przedstawiają bieżące wykorzystanie pamięci według ścieżki kodu, w której dokonano przydziału.

Profile Python

Typ profilu Opis
Wykorzystanie procesora Profile procesora pokazują użycie procesora dla każdej ścieżki kodu. Reguła profilująca procesora działa w oparciu o statystycznie próbkowanie wykonania procesu.
Połączenia blokujące Profile blokowania wywołań wyświetlają zagregowany widok oczekiwania na wywołanie dla każdej ścieżki kodu.
Współczynnik przydziału pamięci Profile współczynnika przydziału pamięci przedstawiają ilość pamięci przydzielonej na jednostkę czasu zagregowaną przez ścieżki kodu, w której dokonano przydziału.

Profile Ruby

Typ profilu Opis
Wykorzystanie procesora Profile procesora pokazują użycie procesora dla każdej ścieżki kodu. Reguła profilująca procesora działa w oparciu o statystycznie próbkowanie wykonania procesu.

Profile podstawowe środowiska .NET produktu

Uwaga: Profile podstawowe .NET są obsługiwane tylko w systemach operacyjnych Linux.

Typ profilu Opis
Wykorzystanie procesora Profile procesora pokazują użycie procesora dla każdej ścieżki kodu. Reguła profilująca procesora działa w oparciu o statystycznie próbkowanie wykonania procesu.