JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=0de8bae9cb201cf1642488873a27769aMedaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Zeitmessung funktioniert nicht...

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Fragen, Antworten und Kritik
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
TheMillenium
Dark JLI'ler



Anmeldedatum: 21.07.2002
Beiträge: 1427
Wohnort: World
Medaillen: Keine

BeitragVerfasst am: 17.09.2004, 18:30    Titel: Zeitmessung funktioniert nicht... Antworten mit Zitat

Code:
ofstream file;
   file.open("000.txt",ios::app);

   char s1[]="h9g394ndfsn0203zfbd";
   char s2[]="bd9839g23bdnmc9sh6";
   LONGLONG i;

   LONGLONG time_start, time_end, time_diff;


   QueryPerformanceCounter((LARGE_INTEGER*)&time_start);
   for(i=0;i<100000000;i++)
   (String_same1(s1,s2));
   QueryPerformanceCounter((LARGE_INTEGER*)&time_end);

   time_diff = time_end-time_start;

   cout   << "\n\n\n" << (float)time_end << "ms\n" \
                  << (float)time_end/1000 << "s\n" \
                  << (int)time_end/1000 << "s\n\n";

   file            << (float)time_end << "ms\n" \
                  << (float)time_end/1000 << "s\n" \
                  << (int)time_end/1000 << "s\n\n";

   file.close();


Warum kriege ich in dem Logfile immer nur sowas wie:
Zitat:
7.39566e+010ms
7.39566e+007s
942122s

Zitat:

7.59585e+010ms
7.59585e+007s
-1350949s


Ich hab mal ungefähr gemessen wie groß die Zeitdifferenz in Wirklichkeit sein sollte und das wären ziemlich genau 70s.

Ich habe keine Ahnung woran das liegt, ich hab es auch mit timeGetTime() und GetTickCounts() versucht...
_________________
The source of all power is in its destiny...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
PeaceKiller
JLI Master


Alter: 36
Anmeldedatum: 28.11.2002
Beiträge: 970

Medaillen: Keine

BeitragVerfasst am: 17.09.2004, 19:45    Titel: Antworten mit Zitat

Der Performance Counter gibt keine ms zurück sonder, arbeitet mit seiner eigenen Frequenz die du mit QueryPerformanceFrequency (oder so änlich) abfragen kannst. Einfach die Zeitdifferenz durch die Frequenz teilen und du weisst wie viele Sekunden es beraucht hat.
_________________
»If the automobile had followed the same development cycle as the computer, a Rolls-Royce would today cost $100, get a million miles per gallon, and explode once a year, killing everyone inside.«
– Robert X. Cringely, InfoWorld magazine
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
TheMillenium
Dark JLI'ler



Anmeldedatum: 21.07.2002
Beiträge: 1427
Wohnort: World
Medaillen: Keine

BeitragVerfasst am: 17.09.2004, 20:37    Titel: Antworten mit Zitat

Hab ich gemacht. Jetzt bekomm ich aber 0 heraus...Sad

Code:
LONGLONG i;

   LONGLONG time_start, time_end, time_diff, Frequenz;

   QueryPerformanceFrequency((LARGE_INTEGER*)&Frequenz);
   cout << "Frequenz: " << Frequenz << "\n\n";


   QueryPerformanceCounter((LARGE_INTEGER*)&time_start);
   for(i=0;i<100000;i++)
   (String_same2(s1,s2));
   QueryPerformanceCounter((LARGE_INTEGER*)&time_end);

   file << "time_start: " << time_start << "  " << time_start/Frequenz << "\n";
   file << "time_end: " << time_end << "  " << time_end/Frequenz << "\n";

   time_diff = (time_end-time_start)/Frequenz;

   cout   << "\n\n\n" << (float)time_diff << "ms\n" \
                  << (float)time_diff/1000 << "s\n" \
                  << (int)time_diff/1000 << "s\n\n";

   file            << (float)time_diff << "ms\n" \
                  << (float)time_diff/1000 << "s\n" \
                  << (int)time_diff/1000 << "s\n\n";

   file.close();


Zitat:
time_start: 103234756509 28840
time_end: 103234916214 28840
0ms
0s
0s


Zitat:
time_start: 104385325705 29161
time_end: 104385493545 29161
0ms
0s
0s


time_start und time_end haben verschiedene Werte, teilt man sie aber durch Frequenz dann kommen die gleichen Ergebnisse heraus...komisch


edit:

bei i<100000000
Zitat:
time_start: 106588906843 29777
time_end: 106759627489 29824
47ms
0.047s
0s

_________________
The source of all power is in its destiny...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Fragen, Antworten und Kritik Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum