QueryPerformanceCounter zu schnell



  • Hallo, ich habe nach einer Zeit-Funktion wie "QueryPerformanceCounter" gesucht, jedoch scheint diese zu schnell hochzuzählen.

    #include <Windows.h>
    #include <iostream>
    
    int main() {
    	LARGE_INTEGER systemTime = {};
    
    	double time = 0.0;
    
    	QueryPerformanceCounter(&systemTime);
    	LONGLONG lastTime = systemTime.QuadPart;
    
    	while (true) {
    		QueryPerformanceCounter(&systemTime);
    		LONGLONG thisTime = systemTime.QuadPart;
    
    		time += (double)(thisTime - lastTime) / 10000000.0;
    		lastTime = thisTime;
    
    		std::cout << time << std::endl;
    	}
    
    	system("pause");
    	return 0;
    }
    

    Irgendwas versteh ich wohl nicht:
    https://msdn.microsoft.com/de-de/library/windows/desktop/ms644904(v=vs.85).aspx
    Auf MSDN steht, es sei ein "high resolution time stamp counter".
    Wie schaffen es andere Programme die Sekunden so präzise zu berechnen, wenn es nicht einmal mit dieser Funktion geht?

    Vielen Dank



  • Stichwort QueryPerformanceFrequency.



  • Perfekt, danke:

    time += (double)(thisTime - lastTime) / (double)systemFrequency.QuadPart;
    

Log in to reply