CPerfTimer 定时器类






4.21/5 (20投票s)
2000 年 4 月 12 日

249414

3209
该类封装了 QueryPerformanceCounter,用于高精度计时。
更新:该类现在是线程安全的。
Win32 中通过 QueryPerformanceCounter
和 QueryPerformanceFrequency
API 调用支持高分辨率计时。定时器分辨率因处理器而异。如今的高速处理器具有小于微秒的定时器分辨率。当然,这比 GetTickCount
API 具有更好的分辨率!
直接使用 QueryPerformanceCounter
调用需要键入太多内容,并且生成的代码通常难以阅读。因此,我在网上搜索了一个定时器类,但没有找到一个适合我的。我编写了一个简单而强大的定时器类,并将其命名为 CPerfTimer
。我很久以前就编写了这个类,但至今还没有必要更新它。搜索网络后,我没有找到一个像 CPerfTimer
一样易于使用和有用的定时器类。还有其他一些定时器类可用,它们的简单性和实用性各不相同。我并不声称这是定时器类的终极版本;但是,我希望有人会觉得它足够有用,从而避免花费时间编写另一个定时器类。
该类易于使用。只需将变量声明为 CPerfTimer
类型,调用 Start()
开始计时,并调用 Stop()
停止计时。可以通过调用 Stop()
然后调用 Start()
来暂停计时器并恢复。通过调用 Elapsed...()
函数来检索经过的时间。支持赋值、加法、减法和比较。还提供了一些信息调用。除了 Start
和 Stop
之外的所有调用都可以在不停止计时器的情况下执行。
我没有包含单独的文档或示例应用程序。代码已经记录得相当好,并且上面的段落是从 CPerfTimer.h 文件中复制的。还包括用于添加、减去和比较 CPerfTimers
和秒数(double)的方法。还有一个 CPerfTimerT
类,应该线程安全(没有进行广泛的测试)。如果您发现任何错误或对增强有任何想法,请告知我。
许可证
本文未附加明确的许可证,但可能在文章文本或下载文件本身中包含使用条款。如有疑问,请通过下面的讨论区联系作者。
作者可能使用的许可证列表可以在此处找到。