Komputery przemysłowe i systemy wbudowane
Transkrypt
Komputery przemysłowe i systemy wbudowane
Komputery przemysłowe i systemy wbudowane Oprogramowanie systemów wbudowanych wydajność Wydajność Komputery przemysłowe i systemy wbudowane Oprogramowanie systemów wbudowanych - wydajność KSEM WETI PG October 7, 2015 Optymalizacja kodu Literatura Inżynieria wydajności oprogramowania Komputery przemysłowe i systemy wbudowane Oprogramowanie systemów wbudowanych wydajność Software performance engineering (SPE) - dyscyplina zajmująca się poprawą dojrzałości procesu budowy i rozwoju systemów dla zwiększenia ich wydajności. I podejście systematyczne i ilościowe I skupione na architekturze i implementacji oprogramowania I obejmuje techniki stosowane w każdej fazie cyklu życia oprogramowania, w szczególności: I I reaktywności (responsiveness) czyli zdolności systemu do spełniania wymagań na czas i przepustowość, np: czas potrzebny do zakończenia zadania, liczba transakcji na jednostkę czasu, czas obsługi zdarzenia. skalowalności (scaliability) czyli zdolności systemu do spełniania wymagań na czas i przepustowość w miarę jak zmienia się (rośnie) popyt na usługę systemu Wydajność Optymalizacja kodu Literatura Cele SPE Komputery przemysłowe i systemy wbudowane Oprogramowanie systemów wbudowanych wydajność I Eliminacja opóźnień wdrożenia systemu powodowanych problemami z wydajnością Wydajność Optymalizacja kodu Literatura I Eliminacja przeróbek systemu powodowanych problemami z wydajnością I Eliminacja specjalnych działań na rzecz dostrajania i optymalizacji I Eliminacja zbędnych kosztów sprzętowych związanych z zapewnieniem wydajności I Redukcja kosztów utrzymania oprogramowania związanych z problemami z wydajnością w fazie produkcji I Redukcja kosztów utrzymania oprogramowania związanych z naprawianiem oprogramowania “ad hoc” Proces SPE Komputery przemysłowe i systemy wbudowane Oprogramowanie systemów wbudowanych wydajność Wydajność Optymalizacja kodu Literatura Jak się realizuje SPE? Komputery przemysłowe i systemy wbudowane Oprogramowanie systemów wbudowanych wydajność Wydajność Optymalizacja kodu I Zarządzanie projektem I I I I I I wczesna estymacja ryzyka wydajności, śledzenie kosztów i zysków inżynierii wydajności dopasowanie poziomu SPE do ryzyka wydajności całego systemu integracja SPE z procesem rozwoju oprogramowania SW definiowanie celów ilościowych wydajności identyfikacja przypadków użycia o największych wymaganiach na wydajność Literatura Jak się realizuje SPE? Komputery przemysłowe i systemy wbudowane Oprogramowanie systemów wbudowanych wydajność I Modelowanie wydajności I I przed rozpoczęciem pisania kodu: analiza najprostszego modelu identyfikującego problemy wydajnościowe w architekturze, projekcie i implementacji systemu analiza coraz bardziej szczegółowa w miarę rozwoju oprogramwoania Wydajność Optymalizacja kodu Literatura Jak się realizuje SPE? Komputery przemysłowe i systemy wbudowane Oprogramowanie systemów wbudowanych wydajność I Performance measurement Wydajność Optymalizacja kodu I I planowanie eksperymentów pomiarowych pomiary - wcześniej i często Literatura Zasady SPE I Określ ściśle, jaki system powinien być I I I I nie używaj “najszybszy jak to możliwe”. Używaj określeń ilościowych (“Przepustowość pakietów musi wynosić 600 K pakietów na sekundę dla forwardowania IP) określ przyszłe ilościowe cele określ co można osiągnąć: minimalnie (“Must”) i maksymalnie (“Should”) określ jak to zmierzyć Komputery przemysłowe i systemy wbudowane Oprogramowanie systemów wbudowanych wydajność Wydajność Optymalizacja kodu Literatura Zasady SPE Komputery przemysłowe i systemy wbudowane Oprogramowanie systemów wbudowanych wydajność Wydajność I Gdzie jesteś teraz? I I I I które przypadki użycia uwidaczniają problem z wydajnością? czy problemy moga być rozwiązane standardowymi technikami optymalizacji? czy potrzebny jest nowy projekt, czy można system “dostroić” ? Jakich technik optymalizacji użyć? I I I optymalizacja automatyczna (niskie koszty) - opcje kompilatora przeprojektowanie architektury systemu (duże koszty) algorytmy optymalne (np. FFT zamiast DFT), inne zmiany w oprogramowaniu (średnie koszty) Optymalizacja kodu Literatura Zasady SPE I Plan osiągnięcia celów I I I efektywność w sensie Pareto - termin ekonomiczny oznaczający taki podział dostępnych dóbr, że nie można poprawić sytuacji jednego podmiotu nie pogarszając sytuacji któregokolwiek z pozostałych podmiotów. modelowanie i benchmarking iteracyjne dostrajanie systemu Komputery przemysłowe i systemy wbudowane Oprogramowanie systemów wbudowanych wydajność Wydajność Optymalizacja kodu Literatura Zasady SPE Komputery przemysłowe i systemy wbudowane Oprogramowanie systemów wbudowanych wydajność Wydajność Optymalizacja kodu Literatura I Analiza ekonomiczna I I koszty: czas i koszt analizy, wymagane zmiany w kodzie, koszt zmian sprzętowych, koszt propagacji zmian zyski: wzrost wydajności, odroczone upgrade-y sprzętowe, oszczędności na zasobach ludzkich Rational Unified Process (RUP) RUP - iteracyjny framework rozwoju oprogramowania (Rational Software Corporation, obecnie IBM) Komputery przemysłowe i systemy wbudowane Oprogramowanie systemów wbudowanych wydajność Wydajność Optymalizacja kodu Literatura SPE a RUP Komputery przemysłowe i systemy wbudowane Oprogramowanie systemów wbudowanych wydajność I Faza początkowa (inception): identyfikacja czynników wysokiego ryzyka dla wydajności systemu I Faza opracowania (elaboration): rozwiązanie kluczowych problemów I I I I podstawowa wersja architektury systemu krytyczne przypadki użycia wymagania niefunkcjonalne (system powinien być szybki, niezawodny, skalowalny ...) ile kluczowych transakcji w jednostce czasu? I Faza konstrukcji (construction): budowa systemu I Faza przejścia (do produkcji, transition): I I I szkolenie użytkowników końcowych testowanie dla weryfikacji oczekiwań użytkowników końcowych sprawdzanie założeń z fazy poczatkowej Wydajność Optymalizacja kodu Literatura Wymagania niefunkcjonalne SCRUPLED I Security, licensing, installation I Copyright, legal notices I Reliability – defects, mean time between failures, availability I Usability – ease of use requirements – presentation design guidelines, UE standards, accessibility standards, training standards, sheets, help systems etc. I Performance – quantitative performance requirements I Localization and internationalization – foreign-language operating systems, localization enablement, specific localizations I Essential standards – industry, regulatory and other externally imposed standards I Design constraints – other constraints on the system or development technologies; mandated programming languages and standards, platforms, common components, etc. Komputery przemysłowe i systemy wbudowane Oprogramowanie systemów wbudowanych wydajność Wydajność Optymalizacja kodu Literatura Proces optymalizacji Komputery przemysłowe i systemy wbudowane Oprogramowanie systemów wbudowanych wydajność Wydajność Optymalizacja kodu Literatura I Optymalizacja kompilacji I I kompilacja “tradycyjna”: każdy kod źródłowy kompilowany niezależnie, pliki obiektowe (.o) łączone razem (linker). kompilacja “globalna”: każdy plik C wstępnie przetwarzany i przekazany do optymalizacji w formie jednego pliku; trwa dłużej, trudności z debugowaniem Konfiguracja kompilatora Komputery przemysłowe i systemy wbudowane Oprogramowanie systemów wbudowanych wydajność Wydajność Optymalizacja kodu Literatura I Architektura maszyny docelowej I Końcówkowość (mało- lub wielko-) I Model pamięci I Początkowy poziom optymalizacji (najlepiej najniższy!) Literatura Komputery przemysłowe i systemy wbudowane Oprogramowanie systemów wbudowanych wydajność Wydajność Optymalizacja kodu Literatura Software Engineering for Embedded Systems by Robert Oshana; Mark Kraeling Published by Elsevier Science; Newnes, 2013