TO JEST WERSJA 0.6 TEGO TEKSTU - CZYLI WCIĄŻ BETA
PROSZE O KOMENTARZE, TYCZĄCE STYLU, EWENTUALNYCH BŁEDOW ITD
JEŻELI SAM DAŁBYŚ RADE LEPIEJ NAPISAĆ NINIEJSZY DOKUMENT,
PROSZE O KONTAKT A PRZEKAŻE WSZYSTKIE MATERIAŁY W MOIM POSIADANIU
18 października 1999 . Wszystkie linki zamieszczone w tekście
do tego dnia istniały (were valid) o ile nie jest podane
inaczej w tekście
avly@castle.net - adres nieaktualny, nie znam nowego adresu
Rozdział ten poświęcony jest testowaniu efektywności programów, a nie kontroli
ich poprawności. Temu drugiemu zagadnieniu poświęcony jest rodział
"Używanie gdb" .
Teraz kilka słów na temat testowania programów. Poniżej pokazałem przykład, jak
ja to robię. Wykorzystuję funkcję gettimeofday (man gettimeofday).
W przykładzie tym sprawdzam ile setnych części sekundy trwa
dana część kodu. Tą część kodu wykonuje 1000 razy by mieć pewniejsze wyniki.
Oczywiste jest też, żeby mieć w miarę wiarugodne wyniki, nasz system powinien
być w miarę jednakowo obciążony, i pomiary przeprowadzać kilkakrotnie.
(Przy okazji, zauważyłem ciekawą rzecz : pierwszy pomiar w 75 % przypadków
jest zawsze sporo większy od następnych. Wpływ cache ? ).
Istnieje również inna (lepsza?) metoda, której z czystego lenistwa nie
używałem (nie chce mi się przestawić). Pozwól że zacytuję Piotra Gackiewicza
gacek@ds14.agh.edu.pl :
<CYTAT>
man gprof
musisz odpowiednio skomilować program (np. opcje:
-pg -profile-arcs -ftest-coverage
i zlinkować (-pg).
Po uruchomieniu i zakończeniu takiego programu dostajesz plik gmon.out,
który
łyka z kolei gprof.
</CYTAT>