C ++:运行算法一段时间(没有计时)

时间:2012-10-02 23:26:39

标签: c++ timing

我想的是:

// Runs algorithm() n times during an amount of seconds.
void run(int seconds) {
  clock_t start = clock();
  clock_t current = start;
  while(double (current - start) / CLOCKS_PER_SEC <= seconds) {
    algorithm();
    current = clock();
  }   
}

我选择了clock()而非time(),以避免进程休眠时的会计时间。 我想知道是否有更好的方法来实现这一点,而不使用 chrono

1 个答案:

答案 0 :(得分:2)

STLSoft有一个performance_counter,适用于UNIX和Windows平台。该库只是标题,只需要一个简单的包含:

#include <platformstl/performance/performance_counter.hpp>

void run(int seconds) {
  platformstl::performance_counter pc;
  platformstl::performance_counter::interval_type current = 0;
  pc.start();
  while ((current / 1000) <= seconds){
    algorithm();
    current += pc.stop_get_milliseconds_and_restart();
  }
}

您还可以查看有关制作自己的提示的来源。