Zeit messen



  • hdz schrieb:

    Hi Leute,

    kann ich die Funktion clock_gettime auch unter Windows XP benutzen?

    Wenn Windows den POSIX Standard und da die Realtime Extensions unterstützt, dann ja. Aber ich glaube nicht, dass Windows das kann.



  • Zeig bitte mal Deine #include<foobar.h>-Zeile;

    Sorry, keine foobar.h
    Brauch ich die? In den Beispielen war davon nie die Rede. Er sagt auch dass es die Datei net gibt.

    Wenn Windows den POSIX Standard und da die Realtime Extensions unterstützt, dann ja. Aber ich glaube nicht, dass Windows das kann.

    Also bringt das hier eh nichts?

    Danke,
    HdZ



  • Oder meinst du meine #includes überhaupt?
    Die wären

    #include <iostream>
    #include <windows.h>
    #include <winsock2.h>
    #include <stdio.h>
    #include <stdlib.h>
    //#include <sys/time.h>
    #include <ctime>;
    


  • foobar.h war nur ein Platzhalter.
    Irgendwas passt laut Compiler mit dem #include in Zeile 17 nicht. Welches ist das denn?

    edit: Aber ob das unter Windows generell funktionieren kann oder nicht, weiß ich nicht. Soll ich Dich in ein geeignetes Forum verschieben?



  • Ne, die Zeile 17 ist schwer in Ordnug... 😉
    Das war irgendwie vom Compiler ein Fehler, er sagte nämlich in gewisser Weise:

    In Datei C:\Programme\....\ping.cpp**:7** | 17 [Warning] extra tokens at end of #include directive

    Hab jetzt aber was gefunden:
    time.h: timeGetTime()

    Gibt die Zeit seit dem Start von Windows zurück. (in ms)

    Und nochwas rausgefunden: clock_gettime gibts unter windows nicht, die <ctime> ist unter Linux und Windoof einfach anders...

    Danke euch allen...
    HdZ



  • HdZ schrieb:

    Und nochwas rausgefunden: clock_gettime gibts unter windows nicht, die <ctime> ist unter Linux und Windoof einfach anders...

    Naja, clock_gettime ist aus der SuS IIRC und Windows ist größtenteils weder POSIX- noch SuS-kompatibel. 😉



  • Die clock_gettime sollte in standard c library sein, ist sie aber nicht !
    Dafür aber in librt 🙂

    man muss beim linken die -lrt dazulinken.
    mfg.

    einheitlix schrieb:

    Jaah... sowas habe ich mir vorgestellt 🙂

    Aber... *seufz*... meint ihr, es würde einmal was auf Anhieb klappen? Jetzt will er gar nicht mehr kompilieren 😞

    #include <ctime>
    #include <iostream> 
    using namespace std; 
    
    int main() { 
    
      struct timespec tp; 
      // time at begin and end 
      double begin, end; 
    
      clock_gettime(CLOCK_REALTIME, &tp);
      begin = 1e9*tp.tv_sec + tp.tv_nsec; 
    
      for( long i = 0; i < 12345678; i++);
    
      clock_gettime(CLOCK_REALTIME, &tp);
      end = 1e9*tp.tv_sec + tp.tv_nsec; 
      cout << "Time: " << (end-begin) << " nanoseconds (" << (end-begin)*1e-9 << " seconds)" << endl; 
    
    }
    

    Ausgabe beim kompilieren:

    [21:45:21][~/dev/c++/damen]
    malte@fuchur $ g++ test.cpp
    /tmp/ccwqSts8.o(.text+0x1f): In function `main':
    : undefined reference to `clock_gettime'
    /tmp/ccwqSts8.o(.text+0x5e): In function `main':
    : undefined reference to `clock_gettime'
    collect2: ld returned 1 exit status
    

    Was ist jetzt falsch? Egal, ob ich nun <ctime> oder <time.h> include, derselbe Fehler kommt. Und das, obwohl in der /usr/include/time.h dick und fett steht:

    /* Get current value of clock CLOCK_ID and store it in TP.  */
    extern int clock_gettime (clockid_t __clock_id, struct timespec *__tp) __THROW;
    

    Zu Hülf! 😞
    (sorry, wenn ich mich blöd anstelle... fang halt gerade erstmal an)



  • ich hab ein problem
    ich will die zeit zu beginn und am ende einer funktion messen
    und dann die differenz bilden

    function function()
    {
    zeitmessen();

    }

    2. mal zeitmessen2();

    zeitdifferenz=zeitmessen2-zeitmessen;

    http://www.c-plusplus.net/forum/images/smiles/smile.gif
    🙂



  • Wo ist nun dein Problem und warum erweckst du dafür einen 1 1/2 Jahre alten Thread zum leben?





  • mein problem ist dass ich eine funktion brauch die mir die zeit misst



  • anarchist schrieb:

    mein problem ist dass ich eine funktion brauch die mir die zeit misst

    Dann lies dir den Thread doch mal durch, den du erweckt hast ...


Log in to reply