Genauigkeitsproblem - Laufzeitbestimmung
-
Hallo,
ich habe bestimme wie folgt die LAufzeit einer Funktion:[cpp]
FILETIME fileTime1;
ULARGE_INTEGER uLargeIntegerTime1;FILETIME fileTime2;
ULARGE_INTEGER uLargeIntegerTime2;LARGE_INTEGER uLargeIntegerTimeRESULT;
FILETIME fileTimeRESULT;
SYSTEMTIME systemTimeRESULT;SystemTimeToFileTime(&st_start, &fileTime1);
SystemTimeToFileTime(&st_aktuell, &fileTime2);uLargeIntegerTime1.LowPart = fileTime1.dwLowDateTime;
uLargeIntegerTime1.HighPart = fileTime1.dwHighDateTime;
uLargeIntegerTime2.LowPart = fileTime2.dwLowDateTime;
uLargeIntegerTime2.HighPart = fileTime2.dwHighDateTime;uLargeIntegerTimeRESULT.HighPart = uLargeIntegerTime2.HighPart - uLargeIntegerTime1.HighPart;
uLargeIntegerTimeRESULT.LowPart = uLargeIntegerTime2.LowPart - uLargeIntegerTime1.LowPart;fileTimeRESULT.dwLowDateTime = uLargeIntegerTimeRESULT.LowPart;
fileTimeRESULT.dwHighDateTime = uLargeIntegerTimeRESULT.HighPart;FileTimeToSystemTime( &fileTimeRESULT, &systemTimeRESULT);
GetTimeFormat (LOCALE_USER_DEFAULT, LOCALE_USE_CP_ACP, &systemTimeRESULT, NULL,
uhrzeit_laufzeit, NUM_ELEMENTS(uhrzeit_laufzeit));
TextOut(hDC2,tabelle_x+335+200,tabelle_y+210,uhrzeit_laufzeit,strlen(uhrzeit_laufzeit));
TextOut(hDC2,tabelle_x+285,tabelle_y+210-37,uhrzeit_aktuell,strlen(uhrzeit_aktuell));
}
[cpp]Jetzt habe ich folgendes Problem ... an Sich läuft die Messung wunderbar nur wenn ich über 3 -4 Minuten komme dann addiert das Programm auf einmal nen paarMinuten drauf ... also von z.B. 3:40 auf 7:40 .... wodran kann das liegen?
Gibt es ne Zeitmessungsalternative bei der man das gleiche TimeFormat erhält???
DankeMISCHU
-
Nocheinmal mit funktionierenden Tags:
FILETIME fileTime1; ULARGE_INTEGER uLargeIntegerTime1; FILETIME fileTime2; ULARGE_INTEGER uLargeIntegerTime2; LARGE_INTEGER uLargeIntegerTimeRESULT; FILETIME fileTimeRESULT; SYSTEMTIME systemTimeRESULT; SystemTimeToFileTime(&st_start, &fileTime1); SystemTimeToFileTime(&st_aktuell, &fileTime2); uLargeIntegerTime1.LowPart = fileTime1.dwLowDateTime; uLargeIntegerTime1.HighPart = fileTime1.dwHighDateTime; uLargeIntegerTime2.LowPart = fileTime2.dwLowDateTime; uLargeIntegerTime2.HighPart = fileTime2.dwHighDateTime; uLargeIntegerTimeRESULT.HighPart = uLargeIntegerTime2.HighPart - uLargeIntegerTime1.HighPart; uLargeIntegerTimeRESULT.LowPart = uLargeIntegerTime2.LowPart - uLargeIntegerTime1.LowPart; fileTimeRESULT.dwLowDateTime = uLargeIntegerTimeRESULT.LowPart; fileTimeRESULT.dwHighDateTime = uLargeIntegerTimeRESULT.HighPart; FileTimeToSystemTime( &fileTimeRESULT, &systemTimeRESULT); GetTimeFormat (LOCALE_USER_DEFAULT, LOCALE_USE_CP_ACP, &systemTimeRESULT, NULL, uhrzeit_laufzeit, NUM_ELEMENTS(uhrzeit_laufzeit)); TextOut(hDC2,tabelle_x+335+200,tabelle_y+210,uhrzeit_laufzeit,strlen(uhrzeit_laufzeit)); TextOut(hDC2,tabelle_x+285,tabelle_y+210-37,uhrzeit_aktuell,strlen(uhrzeit_aktuell)); }
Ich denke das ganze ist kein Standard-C++ Problem,
sag mit welcher API du arbeitest und die Mods werden dich verschieben,
in dem dafür geeignetem Sub-Forum wird dir wahrscheinlich besser geholfen.MfG Max
-
Win API