1
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電話嗎?在C++性能測量
我運行在單線程程序測試......但如何確保沒有上下文切換髮生,因爲其他進程可能還對VM
運行有時我得到採取零時間,因爲我測量的是納秒,我發現它很奇怪,在零納秒時如何執行某些操作?
如果每做n次迭代測量,我該如何計算最小/最大值。 – Medicine
@Medicine做更多的查找,然後平均值。如果你只做一個無序地圖查找,那麼用N代替,並將測量時間除以N--其中N是一個很大的數字(10000+) –
@BЈовић明白了。謝謝。 – Medicine