Metody analizy wydajności i precyzji oprogramowania Wojciech Matuszewski
Plan prezenetacji Tło i motywacja Ogólne pojęcia Analiza wydajności Analiza dokładności
Tło i motywacja System nawigacji satelitarnej Przeliczenia współrzędnych Ograniczone zasoby sprzętowe Brak FPU Obliczenia w czasie rzeczywistym Zapewnienie odpowiedniej dokładności
Podstawowe pojęcia Czarna skrzynka Biała skrzynka Analiza statyczna Analiza dynamiczna
Analiza wydajnościowa Ograniczone zasoby: Czas Energia Pamięć
Analiza algorytmów Metoda formalna Pozwala wstępnie porównać rozwiązania Pracochłonna
Narzędzia typu CIT CIT – Compile-time Instrumenation Tools Przykłady: prof, gprof Procedury analityczne dodawane na etapie kompilacji Zmodyfikowany program Brak obsługi bibliotek dołączanych dynamicznie
Narzędzia próbkujące ST – Sampling Tools Przykłady: qProf, OProfile Uruchamiane równolegle z programem Okresowe zbieranie danych o stanie Możliwe pominięcie krótkich funkcji Wydłużenie czasu działania
Liczniki sprzętowe HCT – Hardware Counter-based Tools Przykłady: Perfsuite, hpccount Wykorzystanie sprzętowych liczników zdarzeń Ograniczona ilość liczników → konieczność wielu przebiegów Potrzebne wsparcie sprzętowe
Narzędzie typu BIT BIT – Binary Instrumentation Tools Przykład: Pin Wstrzykiwanie wywołań procedur analitycznych do kodu uruchomionego programu Możliwość włączania i wyłączania
Sondy Dynamic probes Przykład: Dtrace, ftrace „Sondy“ - procedury analityczne wbudowane w biblioteki, frameworki, system Odpalanie sond na podobnej zasadzie, co w BIT
Testy wzorcowe Wygodne do testów porównawczych Tworzone do testowania konkretnych typów systemów fbench
Analiza dokładności Niedoskonałość reprezentacji liczb Niedoskonałość algorytmów Wymagania dokładności
Analiza numeryczna Metoda formalna Pomaga w wyborze odpowiedniego algorytmu
Automatyczne szacowanie błędu Porównywanie wyników programu z „prawidłowymi“ Problem doboru danych Problem zdobycia danych wzorcowych
Bibliografia An Overview of Software Performance Analysis Tools and Techniques: From GProf to DTrace, Justin Thiel Error analysis of system mathematical functions, Gaston Gonnet fbench - Trigonometry Intense Floating Point Benchmark, John Walker, 2014 Dynamic probes with ftrace, Jonathan Corbet, 2009 Performance Analysis Methodology, Brendan Gregg Wykorzystanie sprzętowych liczników zdarzeń do oceny wydajności algorytmów, Szymon Acedański, 2009
Dziękuję za uwagę Pytania?