[ onako @ 04.07.2011. 10:37 ] @
Potrebno je izmeriti vreme koje odredjena funkcija uzima. Probao sam:
Code:

            clock_t start, finish;
            start=clock();
            // funkcija
            finish=clock();
        double myTime=(double)((finish-start)/(CLOCKS_PER_SEC));

ali vreme koje vraca je cesto 0 sec. Postoji li funkcija sa vrecom
granularnoscu (npr 0.3 sec; milisekunde, mikrosekunde)?
Korisitim ubuntu i gcc.
[ X Files @ 04.07.2011. 10:46 ] @
Pretraži ovaj forum (a i šire) po ključnim rečima:
QueryPerformanceFrequency
QueryPerformanceCounter


To je jedno od rešenja.
[ Nedeljko @ 04.07.2011. 11:04 ] @
Budući da u svom kodu koristiš celobrojno delenje, nije čudno što ne možeš da izmeriš vreme kraće od sekunde. Probaj sa konverzijom konstante CLOCKS?PER?SEC u double.

Code:
#include <cstdlib>
#include <ctime>
#include <iostream>

using namespace std;

int main() {
    cout << "Clock per second: " << CLOCKS_PER_SEC << endl;
    clock_t start = clock(), now;

    do {
        now = clock();
    } while (now == start);

    cout << "Measurement precision: " << (now - start)/(double)CLOCKS_PER_SEC << "s" << endl;

    return EXIT_SUCCESS;
}


E, sad, od uglavnom prenosivih stvari možeš koristiti još i ftime, a na GNU/Linux sistemima i getrusage.