Zeit in Millisekunden messen..



  • Wie kann ich das am besten in C++ realisieren;

    Verwendung: Schleifenkonstruktionen testen.. . (beste dann verwenden);
    Bei Berechnungen z.b: nur 10 sec. Zeit, dann Antwort usw.

    Das ist doch eine Thema für die FAQ (da habe ich nicht gefunden;)
    Danke für eure Antworten!
    mfg



  • Du könntest es folgendermaßen machen:

    #include <time.h>
    #include <iostream.h>
    int main()
    {
    clock_t Start, Ende;
    float Zeit;
    Start = clock();
    // weiterer Code
    Ende = clock();
    Zeit = (float) ((Ende - Start) * 1000 )/ CLOCKS_PER_SEC;
    cout << "Die Schleife brauchte " << Zeit << " Millisekunden" << endl;
    return 0;
    }
    

    [ Dieser Beitrag wurde am 18.06.2003 um 16:02 Uhr von Bill Geiz editiert. ]



  • viel besser ist aber, das mit deinem lieblingsprofiler zu machen.
    ansonsten wird das gern ueber eine auto variable, die genau im zu messenden scope lebt gemacht, also

    double d;
    {
    StoppUhr s(d);
    //zu messendes
    }
    cout<<d<<endl;
    

    edit:
    fuer die implementation von StoppUhr:
    wenns ganz genau sein soll: __int64 und rdtsc liefert super ergebnisse, ausser dass du den prozessortakt wissen musst, um das in zeit umzurechnen, aber zum vergleichen reichen takte.
    ansonsten winapi getperformancecounter und getperformancefrequency oder so. nicht ganz so genau aber man kriegt ohne weiteres die zeit raus.

    [ Dieser Beitrag wurde am 18.06.2003 um 16:23 Uhr von PeterTheMaster editiert. ]


Anmelden zum Antworten