当计算并行程序性能时,通常计算wall clock时间,而不是CPU时间,这是重要的,理由是通过利用更多的CPU增加了更好的并行度,其时间是多CPU时间的聚集。
TBB的类tick_count提够一个简单的接口测量wall clock时间,tick_count有个静态方法tick_count::now()表示当前的绝对时间,2个tick_count相减是一个相对时间在(tick_count::interval_t),你能把其转换成seconds,如下:
tick_count t0 = tick_count::now();
... do some work ...
tick_count t1 = tick_count::now();
printf(“work took %g seconds\n”,(t1-t0).seconds());