Drecik学习经验分享
转载请注明出处:http://blog.csdn.net/drecik__/article/details/8093724
如果是一般精度要求可以使用GetThreadTimes和GetProcessTimes函数来获取时间,原型如下:
// 以下获得的时间都是以100ns为单位,从1601/01/01子时开始计算的时间; BOOL GetThreadTimes( HANDLE hThread, // 线程句柄; LPFILETIME lpCreationTime, // 线程创建时间; LPFILETIME lpExitTime, // 线程退出时间,如果仍在运行,则未定义; LPFILETIME lpKernelTime, // 线程在内核模式下运行操作系统代码所用的时间; LPFILETIME lpUserTime // 线程运行用户代码所用的时间; ); BOOL GetProcessTimes( HANDLE hProcess, // 进程时间; LPFILETIME lpCreationTime, // 四个参数同线程; LPFILETIME lpExitTime, // 但是指的是进程中所有线程的时间总和; LPFILETIME lpKernelTime, LPFILETIME lpUserTime );
BOOL QueryThreadCycleTime ( HANDLE ThreadHandle, // 线程句柄; PULONG64 CycleTime // 线程所用的时钟周期数; ); BOOL QueryProcessCycleTime ( HANDLE ProcessHandle, // 进程句柄; PULONG64 CycleTime // 进程中所有线程使用的时钟周期数; ); BOOL QueryPerformanceFrequency( LARGE_INTEGER *lpFrequency // 获得时钟频率; ); BOOL QueryPerformanceCounter( LARGE_INTEGER *lpPerformanceCount // 当前使用的时钟数; );