我想存儲事件時間。 我發現了這兩個函數,但不知道哪一個更快。哪一個更快,getimeofday或clock_gettime?
1
A
回答
3
這取決於你的系統;沒有哪個標準更快。我的猜測是他們通常都是以相同的速度。 gettimeofday
是比較傳統的,如果你希望你的代碼可以移植到舊系統上,這可能是一個不錯的選擇。 clock_gettime
有更多的功能。
-2
看看這個discussion。它看起來質量很好,與你可能要查找的有點過時的東西非常接近。
4
int main()
{
struct timespec tp;
struct timeval tv;
int i=0;
int j=0;
for(i=0; i < 500000; i++)
{
gettimeofday(&tv, NULL);
j+= tv.tv_usec%2;
clock_gettime(CLOCK_HIGHRES, &tp);
j+=tp.tv_sec%2;
}
return 0;
}
%Time Seconds Cumsecs #Calls msec/call Name
68.3 0.28 0.28 500000 0.0006 __clock_gettime
22.0 0.09 0.37 500000 0.0002 _gettimeofday
7.3 0.03 0.40 1000009 0.0000 _mcount
2.4 0.01 0.41 1 10. main
0.0 0.00 0.41 4 0. atexit
0.0 0.00 0.41 1 0. _exithandle
0.0 0.00 0.41 1 0. _fpsetsticky
0.0 0.00 0.41 1 0. _profil
0.0 0.00 0.41 1 0. exit
這在Solaris 9 v440盒子上運行。在您自己的盒子上分析代碼。這個結果與之前提供的鏈接中引用的結果完全不同。換句話說,如果存在差異,那將是由於隱含的原因。
2
你不在乎。
如果你經常打電話給他們其中任何一個,那麼它很重要,你做錯了。
配置文件代碼導致特定的性能問題,並檢查它在那裏花費的時間。如果它太多,可以考慮重構它以減少調用函數的次數。
0
取決於常數,用於clock_gettime()
。對於最快的時鐘,常量有CLOCK_*_COARSE
。這些定時器是最快的,但並不精確。
gettimeofday()
應返回相同的clock_gettime(CLOCK_REALTIME)
此外,基準測試結果取決於架構(Linux版)。由於Linux有專門的技術(VDSO)來消除系統調用以獲得時間。這些技術在X86-32bit架構上無法使用。請參閱strace
輸出。
相關問題
- 1. 哪一個更快,C#或Vb.net?
- 2. 哪一個更快:Math.abs(value)或value * -1?
- 3. unordered_map:哪一個更快find()或count()?
- 4. numpy.max或max?哪一個更快?
- 5. 哪個更快,get()或merge()?
- 6. 哪個更快? NSXMLParser或KissXML
- 7. 哪個更快:document.location.pathname或myOwnObj.pathname?
- 8. 哪個更快,XPath或Regexp?
- 9. 哪個更快RegisterStartupScript或RegisterClientScriptBlock?
- 10. 哪個更快,GDI +或libpng?
- 11. write或printf,哪個更快?
- 12. 哪個更快? Statement或PreparedStatement
- 13. 哪個更快 - WebSockets或Ajax?
- 14. 哪個更快?插入或更新?
- 15. 更新或刪除哪個更快?
- 16. 哪一個是更快
- 17. loadHTML&loadHTMLFile,哪一個更快?
- 18. 哪個更快?
- 19. 哪個更快?
- 20. 。哪個更快?
- 21. 哪個更快?
- 22. 哪個更快?
- 23. 哪個更快/更好:哪裏更新或合併?
- 24. 哪個更快s + ='a'或s = s +'a'python
- 25. 哪個布爾更快? <或<=
- 26. 哪個更快合併或ISNULL?
- 27. 哪個功能更快? substr()或str_replace()?
- 28. 哪個更快的asp.net mvc json或json.net?
- 29. 數組符號或.method() - 哪個更快?
- 30. SQL&PHP - 哪個更快mysql_num_rows()或'select count()'?
如果你用這種方式回答問題,你做錯了:-)也許他想寫他自己的分析器?這些函數的執行時間本身可能會影響它們傳遞的結果。 – hirschhornsalz 2016-04-15 10:04:08