AMD CodeAnalyst - AMD CodeAnalyst
AMD CodeAnalyst to oparty na graficznym interfejsie użytkownika profiler kodu dla maszyn opartych na procesorach x86 i x86-64 . CodeAnalyst ma podobny wygląd i działanie na platformach Linux i Microsoft Windows . CodeAnalyst wykorzystuje określone techniki profilowania sprzętu, które są przeznaczone do pracy z procesorami AMD, a także technikę profilowania opartą na zegarze, która nie wymaga specjalnego wsparcia sprzętowego; Dzięki temu podzbiór funkcji profilowania może działać na procesorach innych niż AMD, takich jak procesory Intel .
Od marca 2013 roku CodeAnalyst został zastąpiony przez AMD CodeXL .
Optymalizacja kodu
CodeAnalyst jest oparty na OProfile dla platformy Linux i jest dostępny do bezpłatnego pobrania. Graficzny interfejs użytkownika pomaga w różnego rodzaju profilowaniu kodu, w tym profilowaniu opartym na czasie, profilowaniu opartym na zdarzeniach sprzętowych, profilowaniu opartym na instrukcjach i innych. To daje statystyki o szczegóły, takie jak czas spędzony w każdym podprogramie , które mogą być wiercone w dół do kodu źródłowego lub poziomu obsługi . Czas potrzebny na instrukcje może wskazywać na przerwy w potoku podczas wykonywania instrukcji. Optymalizacja może być tak prosta, jak zmiana kolejności instrukcji w celu maksymalnego wykorzystania pamięci podręcznej linii danych lub zmiana / usunięcie rozgałęzień i pętli w celu wykorzystania maksymalnej liczby jednostek wykonawczych (jednostki ładowania / przechowywania, ALU , jednostka wykonawcza FP ...) równolegle.
Obsługa PERF została dodana w CodeAnalyst 3.4, umożliwiając użytkownikom wybór między OProfile i PERF jako zapleczem profilującym.
Próbkowanie oparte na instrukcjach
CodeAnalyst obsługuje IBS (próbkowanie oparte na instrukcjach), które zostało wprowadzone w procesorach rodziny AMD 10h (Barcelona). Dzięki obsłudze IBS CodeAnalyst może dokładniej identyfikować instrukcje, które powodują blokady potoku i chybienia w pamięci podręcznej.
Otwarte źródło
Wersja CodeAnalyst dla systemu Linux jest dostępna na licencji GNU General Public License 2.0.
CodeAnalyst wykorzystuje również inne komponenty open source, w tym ram Qt , libdwarf , libelf oraz binarne biblioteki deskryptor pliku .