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

Podobne dokumenty