我想測量一些庫調用的性能。我的主要測量工具是rdtsc調用。在做了一些閱讀之後,我意識到我需要禁用搶佔和中斷以獲得最準確的讀數。有人可以幫我弄清楚如何做到這些?我知道pthreads有一個「設置親和力」機制。這足以完成工作嗎?固定一個pthread到一個核心
我也讀的地方,我可以打電話到那種
preempt_disable()
raw_local_irq_save(...)
是否有使用一種方法比其他任何好處的內核?我嘗試了後一種方法,並得到了這個錯誤。
error: 'preempt_disable' was not declared in this scope
它可以通過包含linux/preempt.h來修復,但編譯器仍然抱怨。
linux/preempt.h: No such file or directory
很顯然,我沒有做任何的內核黑客和我到處都找不到我的系統上這個文件。我真的希望我不必安裝新的Linux內核。 :)
感謝您的意見。
無論如何我沒有看到你的問題。如果lib調用花費的時間很少,它被中斷的機率很小。如果庫調用需要很長時間,則中斷時間不重要。如果lib調用是「恰到好處」,那麼製作大量的中斷時間是不重要的。禁用中斷?試圖衡量一個無人能夠運行的癱瘓的操作系統的性能有什麼意義?禁用搶佔很容易 - 只需在空閒系統上運行測試 - 如果沒有其他任何準備就緒,則不會搶佔。 – 2012-03-30 05:00:14