RSS

Liczy się najkrótszy czas

Liczba odsłon: 24

Pomiar czasu realizacji operacji przez komputer zawsze jest w pewnym stopniu zafałszowany. W obecnych czasach, gdy pracą komputera zarządzają wielodostępne, wielozadaniowe systemy operacyjne, praca programu testowego może zostać w dowolnym momencie chwilowo przerwana na rzecz innego procesu. Im krótsza dana operacja, tym wpływ przerw w działaniu jest większy. Z kolei dawniej, gdy program miał pełną kontrolę nad komputerem, czynnikiem zakłócającym były przerwania. Owszem, można było wyłączyć przerwania, lecz gdy program „poszedł w maliny”...

Pewnym sposobem na likwidację zakłóceń było zawsze uśrednianie wyników. Wystarczy powtórzyć daną operację dziesięć razy, obliczyć średnią arytmetyczną wyników i voila — zakłócenia prawie nie mają znaczenia. Nie jest to jednak doskonała metoda: wiarygodność wymaga dużej liczby powtórzeń, a bardzo duże odchyłki pojedynczych próbek albo wciąż zafałszowują wynik, albo muszą być usuwane przez dwustopniowe wyznaczanie średniej.

Jeżeli jednak przypomnimy sobie sposób, w jaki działa mikrokomputer, dojdziemy do wniosku, że każda operacja trwa pewien określony czas i po prostu nie może trwać krócej. Najlepszym rozwiązaniem jest zatem wyznaczenie nie średniego czasu wykonania operacji, a czasu... najkrótszego. Wystarczy powtórzyć operację kilka razy, wyszukać najkrótszy uzyskany czas realizacji i podać go jako wynik. Jest pewne, że każdy dłuższy czas jest efektem jakichś, mniejszych lub większych, zakłóceń działania.

Oczywiście, średnia nadal jest interesująca, mówi bowiem o wpływie otoczenia na działanie algorytmu. O realnej szybkości realizacji operacji świadczy jednak właśnie najkrótszy czas działania.