我需要测量低延迟应用程序 (3至5微秒) 的消息解码延迟。
我使用了以下方法,
1. Get time T1
2. Decode Data
3. Get time T2
4. L1 = T2 -T1
5. Store L1 in a array (size = 100000)
6. Repeat same steps for 100000 times.
7. Print array.
8. Get the 99% and 95% presentile for the data set.
但是我在每个测试之间得到了波动。有人能解释一下这个原因吗?您能提供任何替代方法吗?
注意:该应用程序是一个紧密循环(占用100%的CPU),并通过taskset命令绑定到CPU。
clock_gettime
函数,并将clockid_t
设置为CLOCK_PROCESS_CPUTIME_ID
,这样就只能测量特定进程所花费的CPU时间。我还确保测试修改了一些原始变量,在计时器停止后打印出来,以防止编译器对测试进行优化。 - Galik