我正在經歷各種機制線程計算器用於計算處理的CPU時間。時鐘()的實現
如何clock()
內部實現的?是否使用rdtsc()
(如果是這樣的話那麼它是內核之間遷移大小寫)。
此外,getrusage()
實施?它是否也取決於TSC?
在此先感謝
我正在經歷各種機制線程計算器用於計算處理的CPU時間。時鐘()的實現
如何clock()
內部實現的?是否使用rdtsc()
(如果是這樣的話那麼它是內核之間遷移大小寫)。
此外,getrusage()
實施?它是否也取決於TSC?
在此先感謝
內核會跟蹤ticks大小的進程的CPU利用率。
clock()
和getrusage()
都基於這些。
內核使用抽樣方法累積內存,內核接收時鐘的硬件中斷並執行時鐘處理程序,該時鐘處理程序將tick添加到當前正在運行的進程中。至少,這是我上次看的時候的工作方式。
因此,rtdsc
根本不起作用 - 這是一件好事,因爲rdtsc
不能準確測量所有CPU。