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???
    Danke

    MISCHU



  • 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


Anmelden zum Antworten