ďťż

Ładny brzuch

Jak napisać program (na konsole oczywiście) który uruchamia jakiś program i mierzy czas jego wykonywania ? Wiem że były już dwa posty na podobny temat ale nie było tam mowy o uruchamianiu jakiegoś innego programu, a ja pojęcia nie mam jak to zrobić.



ogólnie to myślę sobie że mogłoby to być tak:
w tym mierniku dajesz CreateProcess i bierzesz handle tego co stworzyłeś, potem dajesz jakieś czekanie aż ten handle się zwolni(nie pamiętm co to za f była) no i liczysz czas :)

a jest w ogóle taka funkcja która czeka aż się handle zwolni ?

#include<iostream> #include<cstdlib> #include<ctime> using namespace std; main( int argv, char *argc[]) { long long start, stop; cout << "Pomiar czasu \""<< argc[1] <<"\"\n"; struct timeval *b,*e; gettimeofday( (struct timeval *)b, NULL ); system( argc[1] ); gettimeofday( (struct timeval *)e, NULL ); start = b->tv_usec; stop = e->tv_usec; cout << "\n" << stop-start << " microsek\n"; }
wystarczy skompilowac pod gpp/g++
oczywiscie program korzysta z argumentow takze: test jakis_program i tyle (jesli program takze posiada argumenty lub ma dwuwyrazowa nazwe to przyda sie "", np test "program arg1 arg2..")
czas w mikrosekundach, ale zauwazylem ze prawie zawsze 3 ostatnie cyfry sa zerami, wiec wyglada to jakby to byla dokladnosc do milisekundy
mam nadzieje ze o to chodzilo :)

PS. nie wiem czemu ale bez deklarowania zmiennych na poczatku wywala bledy pamieci :/ inaczje program bylby krotszy
Użytkownik fernandez edytował ten post 31 październik 2007, 02:16
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •