2013-07-22 49 views
1

我使用gprof分析netbsd上的用戶空間應用程序,並使用高達30%的週期查看clock_gettime。 Gprof沒有顯示它從哪裏調用(它顯示了一些明顯不會調用clock_getttime的函數)。 該應用程序使用包括libevent 1.4(似乎使用clock_gettime)的第三方代碼。我看着從那個電話中刪除,但無法確定。Clock_gettime在分析代碼時顯示高使用率

  1. 我不明白爲什麼需要那麼多時間。任何輸入將不勝感激。我也看到gettimeofday需要很多週期。一般來說,爲什麼要花費這麼多的處理週期
  2. 有沒有辦法可以優化clock_gettime()或者我們可以使用任何其他調用?
  3. 當使用-pg編譯用於分析目的時,gcc是否可能會將此調用添加到代碼中? 感謝您的任何答案

回答

1

這都是相對於其他任何你的程序在做什麼,並請記住,如果你做任何I/O,CPU的實際時間你的程序使用可能很小,而gprof沒有看到別的。 因此,如果有些時間程序的調用會停留在那裏,並且它們經常被調用,那麼肯定它們會顯示很高的百分比。

爲什麼gprof沒有顯示它們從哪裏被調用? 對於使用-pg編譯的例程,它會嘗試確定在輸入任何例程時調用者是誰。 它嘗試,但這並不意味着它成功。無論如何,that's gprof

+0

謝謝。有沒有什麼辦法可以優化clock_gettime或比較clock_gettime可能使用的不同定時器的性能 – doon

+0

@doon:請參閱我不優化這種方式。我在尋找我自己的代碼中所花費的時間。 [*我使用這種方法。*](http://stackoverflow.com/a/378024/23771) –

相關問題