Win32 API Reference

Microsoft Developer Network (MSDN)

GetTickCount64

Retrieves the number of milliseconds that have elapsed since the system was started.

Syntax

ULONGLONG GetTickCount64();

Parameters

This function does not take any parameters.

Return Value

The return value is the number of milliseconds that have elapsed since the system was started. This value is a 64-bit integer.

Remarks

The value returned by GetTickCount64 is a time value. It is not a wall-clock time. The value wraps around approximately every 292 years. For this reason, you should not compare the return values of this function across different system startups. Instead, if you need to measure elapsed time, you should call GetTickCount64 once at the beginning of the interval and then again at the end, and subtract the first value from the second. This function is suitable for measuring short intervals of time.

For more accurate time measurements, consider using high-resolution performance counters. The QueryPerformanceCounter function provides a higher-resolution timer.

Note

The GetTickCount function is a 32-bit version of this function. GetTickCount64 is recommended for new applications because it avoids the rollover problem of GetTickCount which occurs every 49.7 days.

Example

The following example demonstrates how to use GetTickCount64 to measure elapsed time.

#include <windows.h>
#include <iostream>

int main() {
    ULONGLONG startTime = GetTickCount64();

    // Simulate some work
    Sleep(2000); // Sleep for 2 seconds

    ULONGLONG endTime = GetTickCount64();
    ULONGLONG elapsedTime = endTime - startTime;

    std::cout << "Elapsed time: " << elapsedTime << " milliseconds." << std::endl;

    return 0;
}

Requirements

Item Value
Minimum supported client Windows Vista [desktop apps | UWP apps]
Minimum supported server Windows Server 2008 [desktop apps | UWP apps]
Target Platform Windows
Header Winbase.h (include Windows.h)
Library Kernel32.lib
DLL Kernel32.dll