cpp项目(windows)中的计时命令

Timing commands in cpp project (windows)

本文关键字:命令 项目 windows cpp      更新时间:2023-10-16

我希望有人能帮我(英语不是我的母语,所以我提前为任何语法或拼写错误道歉):

作为我正在编码的项目的一部分,我需要对一些命令进行计时。更具体地说:我有两组命令(我们称它们为集合A和集合B)-我需要执行集合A,然后等待特定的毫秒数(在集合A中计算),然后执行集合B。

现在,我需要合并另一组命令(集合C),它们将在集合a和B之间的时间内循环运行,而不是简单地什么都不做。这意味着,我需要它来循环C集,而不是程序之前空闲的时间(等待指定的毫秒数)-,但问题是它来循环C,与它在空闲时间中等待的时间完全相同

在不使用线程的情况下如何做到这一点?(通常尽可能简单)

我想C中命令集的"工作时间"是已知的。C是一个循环,当等待时间到期时,它可以/应该结束。

在这种情况下,我建议使用性能计数器来倒计时等待时间。根据计算的内容和C中引入的过度处理,获得的精度可能在微秒范围内。

伪代码:

Delay = 1000
Do A
CounterBegin = GetCounter()
// and now the C loop
while ((GetCounter() - CounterBegin) < Delay) {
   Do C
}
Do B

注意:计数器值将使用计数器频率转换为时间。请参阅上面的链接以获取详细信息。