ďťż

Ładny brzuch

Zwracam sie do was o pomoc. Mam napisać funkcję która oblicza czas wykonywania pewnej funkcji obliczeniowej. Funkcja obliczeniowa może być np. reprezentowana za pomocą funkcji sleep(n), gdzie n jest liczbą sekund generowaną losowo. Jakiej funkcji czasu (systemowej) mam użyc do tego obliczenia i jak jej użyć?

Dostepne funkcje to:
time(), localtime(), ctime(), gmtime(), mktime(), asctime(), strftime(), gettimeofday(), difftime().

Proszę o pomoc i z góry dzieki.

Lipek



jak chcesz sprawdzic ile czasu trwala praca danej funkcji to powinno wystarczyc zwykle time i ew. difftime, lub jakies funkcje unixa do pobierania czasu procesora (mikrosekundy) - ale to tylko gdy funkcja dziala ponizej 1s...

FreeBSD r0x :P
http://www.cepa.end.pl
http://cepa.algorytmy.one.pl
GG: 2175556

OK. To pokaz jak to zrobic majac np. cos takiego:

void func();

int main() {
func();
}

void func() {
// cos tam robi
}

Jak pokazac czas ile czasu pracowała funkcja func()???

Lipek

najprosciej by bylo:

time_t T1 = 0,T2 = 0;
//...
time(&T1);
func();
time(&T2);
//...
printf("%ldn",T2 - T1);

powinno dac wynik w sekundach, jak chcesz mniejsze jednostki to szukaj struktor ktore to umozliwiaja, bylo cos podajze jak timeval ale nie wiem jak sie tego dokladnie uzywa....

FreeBSD r0x :P
http://www.cepa.end.pl
http://cepa.algorytmy.one.pl
GG: 2175556



ok. sprobuje. dzieeeeeeeki!!!!!

Lipek

No wlasnie, a moze ktos wie jak uzyc do tego celu funkcji gettieofday() lub difftime() aby czas byl był pokazywany w mniejszych jednostach niz sekundy?

Lipek

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •