即CPU开始时刻记录->CPU发布任务给GPU->CPU等待GPU完成->CPU记录结束时刻。 这4个步骤, 任何一个步骤错误了, 都会导致错误的结果。...这里我们只推荐两种正确做法(也有其他的, 但这两种是推荐的).
(1) 在Windows上请使用QueryPerformanceCounter()/Frequency()这两个函数来进行计时....我们平常日使用的时间, 在计算机中, 叫real time, 即中文翻译是"实时钟";也叫wall time, 就是你挂载墙上的钟上经过的时间....这就像我们用墙上的钟表的秒针(最长的那个指针)来计时一样, 它的分辨率只有1s级别, 如果我们的代码运行了300ms, 你会发现秒针没动, 运行时间为0;
或者我们的代码运行了1.7s, 你会发现秒针动了1下或者2下, 时间也错的离谱...幸运的是, 我们的QueryPerformanceCounter()和gettimeofday()在2个平台上均可以满足这两点要求.