timespec start, end;
clock_gettime(CLOCK_MONOTONIC, &start);
---code--lookup in a unordered map <string, int>
clock_gettime(CLOCK_MONOTONIC, &end);
int diff = diff_ns(end, start);
Results:
SAMPLE MIN(ns) MAX(ns) AVG(ns)
100 1000 3000 1430
500 1000 2000 1436
1000 0 16000 1441
5000 0 15000 1479
10000 0 26000 1489
50000 0 363000 1589
100000 0 110000 1591
200000 0 804000 1659
300000 0 118000 1668
400000 1000 354000 1701
500000 0 8679000 1712
600000 0 809000 1701
700000 0 373000 1704
800000 0 850000 1716
900000 0 856000 1736
1000000 0 817000 1730
如何忽略 CPU 计算clock_gettime 所花费的时间,因为最后我们也花费了clock_gettime 调用所花费的时间?
我在单线程程序中运行测试...但是如何确保没有发生上下文切换,因为其他进程也可能在 VM 上运行
有时我的时间为零,因为我以纳秒为单位进行测量,我觉得很奇怪,怎么能在零纳秒内执行?