我需要一個非常精確的方法是使用時間我的程序的一部分。 我可以使用常規的高解析度時鐘來參加,但將返回時鐘時間,這不是我需要: 我需要賽倫斯運行所用的時間只有我的進程。
我清楚地記得看到Linux內核修補我的流程讓我可以時間以納秒級的精度,除了它,我忘了我忘了書籤的名稱補丁也:( 。
不過我記得它是如何工作的:
每次上下文切換,將讀出的值高解析度時鐘,並將delta的最後兩個值添加到正在運行的進程的處理時間。 這會產生高解析度的準確視圖進程'實際處理時間。
常規的處理時間保持使用普通時鐘,它是我相信毫秒精度( 1000Hz ),這是太大,我的目的。
有人知道內核補丁我再說什麼? 我還記得就像單詞以字母之前或之後類似'rtimer'之類,但我不太記得是。
( 其他建議也歡迎)
" Completely Fair Scheduler建議進行建議Marko不是我在找,但是似乎有前途 我對布朗的問題與之是,調用我可以用來獲取進程時間仍未返回值的粒度足夠。times( ) 21.22返回了值,以毫秒為單位。
clock( ) 返回了值21000,22000,同一粒度。
getrusage( ) 是返回類似於210002值,22001 ( 和somesuch ),看起來有一點更好的準確性,但會看顯著地的值相同。
所以現在我可能遇到的問題是,內核有我需要的信息,我不知道的系統調用將返回它。