C ++使用时间作为变量来存储事件长度以便稍后重现

C++ Using Time as variable to store event length to reproduce later

长话短说:

我正在尝试测量事件(执行命令的设备)开始和结束之间的时间差,因为我想稍后将其重现为 return Home 命令。

但是,对于同一个事件,时间似乎相差很大,相差 x2 倍。

这是我的测试代码:

#include <stdio.h>
#include <time.h>
#include <iostream>
using namespace std;

int main ()
{
  clock_t t;
  t = clock();
  for(int i =0; i < 50; i++) { cout << i << " ";}
  t = clock() - t;
  printf ("\nIt took me %d clicks (%f seconds).\n", t, ((double) t) / CLOCKS_PER_SEC);
  return 0;
}

有谁知道更好的方法来获得更好的结果吗?

上下文:
通过蓝牙向设备发送命令,例如在按下 VK_UP 键时以 X 速旋转两个电机,并在 VK_UP 时停止电机 已发布。这个想法是使用 keypressed-keyreleased 之间的执行时间映射所有这些命令,然后构建一个 Return Home 函数。

嗯,首先,考虑使用 C++ 工具测量时间,就像这个问题一样:

Measuring execution time of a function in C++

那么,一段代码的执行时间可能会受到很多情况的影响,所以你应该把它当作一个随机变量,多次测量,或者测量次数之和除以重复次数。

最后,您的计算机不会将所有时间都花在执行您的程序上;所以 - 您可能想使用 time 程序或分析器应用程序来计算您的程序实际获得了多少处理器时间。