1.7.3.2 高分辨率计时器(High-Resolution Timer)
计数器是一个通用的术语,在编程用来指一个递增的变量。一些系统包含一个高分辨率的执行计数器,提供高分辨率的逝去时间。如果系统上存在一个高分辨率的执行计数器,就可以使用QueryPerformanceFrequency函数来表示频率,采用每秒多少个的形式表示。该计数器的值依赖于处理器。例如,在一些处理器上,计数可能就是处理器时钟的周期。
函数QueryPerformanceCounter获得高分辨率执行计数器的当前值。通过在代码的起始与结束处调用该函数,一个应用程序在本质上使用该计数器作为一个高分辨率的计时器。比如,假设QueryPerformanceFrequency函数指明高分辨率执行计数器的频率是50,000个每秒。如果在需计时的应用程序代码块之前与之后直接调用QueryPerformanceCounter函数,计数值可能分别为1500与3500。这些值说明这段代码逝去了0.04秒(2000个计数,2000除以50,000)。
QueryPerformanceCounter函数
函数QueryPerformanceCounter获得
高分辨率执行计数器的当前值
,函数原型如下:
参数lpPerformanceCount指向一个接受执行计数器当前值的变量,用个数表示。
如果函数成功返回非0值。如果函数失败,返回0值。
QueryPerformanceFrequency函数
如果存在一个高分辨率执行计数器,函数返回计数器的频率。当系统正在运行时该频率不会改变。
函数原型如下:
参数lpFrequency 指向一个接受当前执行计数器频率的变量,用个数每秒的形式表示。如果安转的硬件不支持一个分辨率执行计数器,该参数可能为0。
如果安转的硬件支持一个分辨率执行计数器,返回值为一个非0值。如果函数失败,返回0值。如果安转的硬件不支持一个分辨率执行计数器,该函数失败。
本文出自 “千江月” 博客,请务必保留此出处http://eslxf.blog.51cto.com/918801/214882
转载于:https://blog.51cto.com/runhook/387942