przewidywania Performance - Performance prediction
W informatyce , przewidywanie wydajność oznacza oszacowanie czasu realizacji lub inne czynniki, takie jak wydajność ( cache miss) programu na danym komputerze. To jest powszechnie stosowane dla architektów komputerowych do oceny nowych projektów informatycznych, dla kompilatora pisarze odkrywać nowe optymalizacje, a także dla zaawansowanych programistów, aby dostroić swoje programy.
Istnieje wiele podejść do przewidywania wydajności programu „s na komputerach. Można je z grubsza podzielić na trzy główne kategorie:
- przewidywanie oparte symulacji
- przewidywania oparciu o profile
- modelowanie analityczne
przewidywanie oparte symulacji
Dane dotyczące wydajności mogą być bezpośrednio uzyskane z komputerowych symulatorów , w którym każda instrukcja programu docelowego jest faktycznie wykonywana dynamicznie podano konkretny zestaw danych wejściowych. Symulatory mogą przewidzieć wydajność programu bardzo dokładnie, ale zajmuje sporo czasu do obsługi dużych programów. Przykłady obejmują TEMPO i Wisconsin tunel aerodynamiczny symulator, jak i bardziej współczesnych WARPP symulacji zestaw narzędzi, który próbuje uzyskać znaczne skrócenie czasu wymaganego dla symulacji systemu równoległego.
Innym podejściem, na podstawie symulacji opartych na ślad nie prowadzi każdą instrukcję, ale uruchamia plik śledzenia, które przechowywane są tylko ważne wydarzenia programu. Takie podejście traci pewną elastyczność i dokładność w porównaniu do symulacji cyklu dokładnością wspomnianej powyżej, ale może być znacznie szybciej. Pokolenie ślady często zużywa znaczne ilości przestrzeni dyskowej i może poważnie wpływać na czas pracy aplikacji, jeśli duża ilość danych zapisywane są w trakcie realizacji.
przewidywania oparte na profilu
Klasyczne podejście do przewidywania wydajności traktuje program jako zbiór podstawowych bloków połączonych ścieżce wykonywania. A zatem czas realizacji całego programu jest sumą czasu wykonania każdego podstawowego bloku pomnożonej przez częstotliwość realizacji, jak pokazano w następującym wzorze:
Częstotliwości wykonanie podstawowych bloków są generowane z profilera , dlatego metoda ta nazywana jest przewidywanie oparte na profil. Czas realizacji podstawowego bloku uzyskuje się zazwyczaj od prostych instrukcji harmonogramu.
przewidywania oparte profil klasyczny działa dobrze na początku pojedynczej emisji, procesory wykonania w zamówienie, ale nie dokładnie przewidzieć wydajność nowoczesnych procesorów. Głównym powodem jest to, że nowoczesne procesory mogą wydać i wykonać kilka instrukcji w tym samym czasie, czasami z oryginalnej kolejności i przekroczyć granicę podstawowych bloków.