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 の計算に費やした時間を無視するにはどうすればよいですか?
シングルスレッドプログラムでテストを実行しています...しかし、他のプロセスもVMで実行されている可能性があるため、コンテキストスイッチが発生していないことを確認する方法
ナノ秒単位で測定しているため、時間がゼロになることがありますが、奇妙なことに、何かがゼロナノ秒で実行されるのはなぜでしょうか?