Prosty benchmark.

Potrzebujesz pomocy z C, C++, perl, python, itp.
n4buchodonozor
Posty: 26
Rejestracja: 06 maja 2007, 02:15

Post autor: n4buchodonozor »

Nie wiem czy dobrze mnie zrozumieliscie. Moze jeszcze raz. Musze porownac wydajnosc 2 systemow. GNU/Linux i WinXP. Najprostrze co mi przyszlo do glowy to wlasnie taki prosty benchmark ale zeby wynik byl miarodajny to musza byc takie same maszyny i ta sama operacja, roznic sie moga tylko sprodowiskiem.

Uproszcze: jak zmierzyc czas wykonywania petli w C++? :)
hot_stuff
Posty: 27
Rejestracja: 30 sierpnia 2007, 20:04
Lokalizacja: NULL

Post autor: hot_stuff »

Plik naglowkowy ctime i funkcja time() jezeli nie ta to na google wpisujesz ctime c++ i ktorys z 3 pierwszych linkow o ile nie pierwszy zaprowadzi ci do strony z funkcjami z tej biblioteki. Jest ona w standardzie C++ wiec wszystko co jest w niej jest przenosne jednak nie radze uzywac funkcji clock() bo ona sie nie nadaje do sprawdzania czasu jaki uplynal.
W sumie funkcja time() chyba zwraca sekundowy czas a tobie bedzie potrzebny czas w milisekundach inaczej zapewne wyjda ci te same dane...
Co do funkcji liczacych milisekundy hmmm.. sam kiedys szukalem i nie znalazlem<no pod windowsem jest GetTickCount() a co pod linuxem hmmm...>
No i funkcja mierzaca czas raczej nie musi byc ta sama pod linuxem i pod windowsem wazne jest tylko to co bedzie sie dzialo pomiedzy kolejnymi pobraniami czasu - im dluzej to cos bedzie trwac tym dane beda dokladniejsze czyli polecam np jakas metode sortujaca duza ilosc danych, puszczona w petli<np sortowanie babelkowe :mrgreen: > a moze by tak tescik lucasa na pierwszosc liczb? ;-) no lub to wspomniane PI.

Jedno mnie tylko zastanawia -> takie 'matematyczne' benchmarki sprawdza ci tylko ewentualne roznice w 'optymalnosci' wykorzystania procesora i w pewnym stopniu RAM'u<zaleznie od testu - przy obliczaniu PI raczej pamiec niewiele ma do gadania ale to tez zalezy>

Rozpisalem sie a to znaczy, ze jestem senny... a tyle jeszcze mam do zrobienia...

edit: Czas dzialania petli zmierzysz pobierajac jakas funkcja czas przed jej rozpoczeciem i po jej zakonczeniu a nastepnie wyliczasz roznice czasu<zapewne to wiesz ale na wszelki wyadek napisalem> czym zmierzyc hmm... patrz co napisalem pare zdan wyzej.

Pozdrawiam.
ODPOWIEDZ