Zeitfunktion



  • hallo ich hoffe ihr könnt mir helfen ?!
    ich suche eine Zeitfunktion die im milisekunden messen kann ich habe ein programm in der werte sortiert werden und benötige nun noch eine funktion zum erfassen der zeit des sortiervorgangs ???
    findet man so etwas in time.h???
    ein beispiel wäre schön.
    hoffe das gehört hier hin ! danke schonma !!
    mfg projectX



  • Hallo,
    bitte nicht die Suchfuntkion vergessen:
    Mit dem Suchwort "messen" habe ich z.B. ganz tolle Ergebnisse erhalten.

    Z.B. Zeit messen in ms
    Zeit messen
    Time "funktion" wie

    ...



  • also vielen dank für die links auf die suchfunktion hjätte ich auch mal selber kommen können.
    aber ich komme leider überhaupt nicht weiter.
    ich hjab nun die ganze zeit dran rumprobiert und bekomme das mit clock überhaupt nicht hin.

    kann mir eventuell einer auf die sprünge helfen wie ich bei meinem zufallsgenerator die zeit messen kann ???

    void gen(double X[1000],int *n)
    {
    int i;

    do
    {
    cout<<"Wieviele Zufallszahlen sollen generiert werden?(max:1000)"<<endl;
    cout<<"N:";
    cin>>*n;
    cout<<endl;
    }
    while(*n>1000);

    srand((unsigned)time(NULL));

    for(i=0;i<*n;i++)
    {
    X[i]=rand();
    }

    cout<<"Die Zufallszahlen wurden generiert."<<endl;
    cout<<endl;
    }

    wäre echt nett . *gg*

    und bitte so einfach wie möglich .
    bei allem was ich ausprobiert habe kam immer nur null raus ich hab nie nen millisekunden bereich ausgegeben bekommen.



  • Original erstellt von projectX:
    bei allem was ich ausprobiert habe kam immer nur null raus ich hab nie nen millisekunden bereich ausgegeben bekommen.

    mal rechnen.
    dein zufgen ist extrem lahm und ganz lahm und braucht 1000 takte. du machst 1000 schleifendurchläufe. dein proz hat 1Ghz. das prog läuft also 1ms. die auflösung von clock ist scheinbat 1ms, clock hat aber nen takt von ca 20ms. solltest also fast immer 0 rauskriegen.

    clock wird erst annehmbar genau, wenn du im mehrsekundenbereich mißt.



  • mhh jetzt weiss ich warum null rauskommt aber nicht wie ich endlich vernünftig die zeit messen kann



  • Original erstellt von projectX:
    mhh jetzt weiss ich warum null rauskommt aber nicht wie ich endlich vernünftig die zeit messen kann

    dreh die schleife hoch auf ne million.
    oder nimm rdtsc.





  • danke für die ganze mühe aber ich bin absoluter noob und kann mit dem ganzen kram nich so richtig was anfangen . ich suche die einfachste lösung die ich bekommen kann ich weiss bei den ganzen sachen nich was ich für biblios brauche was ich deklarieren muss etc.
    😞 😕 😞



  • dann zeig ne lösung, die bei die beinahe geht und jemand macht sie heile (falls es wenig arbeit ist).



  • Am einfachsten und genausten gehts afaik mit GetTickCount()



  • aber nur unter Windows!
    und da halte ich rdtsc für noch besser



  • void gen(double X[1000],int *n)
    {
    int i;

    do
    {
    cout<<"Wieviele Zufallszahlen sollen generiert werden?(max:1000)"<<endl;
    cout<<"N:";
    cin>>*n;
    cout<<endl;
    }
    while(*n>1000);

    unsigned long startzeit = GetTickCount();
    srand((unsigned)time(NULL));

    for(i=0;i<*n;i++)
    {
    X[i]=rand();
    }

    unsigned long endzeit = GetTickCount();
    unsigned long differenz = endzeit - startzeit;
    cout << "... hat " << differenz << " ms gebraucht." << endl;
    cout<<"Die Zufallszahlen wurden generiert."<<endl;
    cout<<endl;
    }

    habs so ausprobiert habs aus nem anderen thread übernommen .
    aber wieder nur null.
    oder ist es das gleiche phänomen wie oben erklärt mit clock???



  • alles was ich zu rdtsc gefunden habe hab ich net gepeilt gibt dafür nicht ein obernoobtrottel tutorial???



  • dein code sieht ok aus.
    und jetzt schreib drüber

    inline __int64 rdtsc()
    {
    __asm rdtsc
    }
    und benutz unten rdtsc() statt GetTickCount(). könnte klappen.



  • volkard, kannst du bitte c++-code-tags verwenden?



  • danke schön volkard hat geklappt!!!
    allerdings hat er anfangs noch warnungen rausgegeben wegen deinem zusatz !!!
    könntest du mir den eventuell auch mal erklären also das was ich drüber schreiben sollte?!?!
    thx @ all



  • Original erstellt von projectX:
    danke schön volkard hat geklappt!!!
    allerdings hat er anfangs noch warnungen rausgegeben wegen deinem zusatz !!!
    könntest du mir den eventuell auch mal erklären also das was ich drüber schreiben sollte?!?!
    thx @ all

    hab sowas wie ne clock-funktion nachgebau. mit dem assemblerbefehl rdtsc.
    die zeitangaben, die du jetzt kriegst, sind in prozessortahkten. teile das duch deine taktfrequent, und du hst angaben in sekunden.


Anmelden zum Antworten