我想的是:
// 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 。
答案 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();
}
}
您还可以查看有关制作自己的提示的来源。