 |
JLI Spieleprogrammierung
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
TheMillenium Dark JLI'ler
Anmeldedatum: 21.07.2002 Beiträge: 1427 Wohnort: World Medaillen: Keine
|
Verfasst am: 17.09.2004, 18:30 Titel: Zeitmessung funktioniert nicht... |
|
|
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 |
|
 |
PeaceKiller JLI Master

Alter: 36 Anmeldedatum: 28.11.2002 Beiträge: 970
Medaillen: Keine
|
Verfasst am: 17.09.2004, 19:45 Titel: |
|
|
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 |
|
 |
TheMillenium Dark JLI'ler
Anmeldedatum: 21.07.2002 Beiträge: 1427 Wohnort: World Medaillen: Keine
|
Verfasst am: 17.09.2004, 20:37 Titel: |
|
|
Hab ich gemacht. Jetzt bekomm ich aber 0 heraus...
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 |
|
 |
|
|
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
|