2012-12-17 103 views

回答

1

按照perf_event_open系統調用的man page(由perf用戶級實用程序內部使用):

  • 硬件事件:這表示由內核
  • 硬件提供的「廣義」硬件事件之一緩存事件:這表示硬件緩存事件。

更多了,我想知道,這與所謂的[英特爾®64和IA-32架構軟件開發手冊3B]英特爾®64和IA-32架構軟件開發的非建築和建築活動的一些鏈接手冊3B 2

無論這個分類的確切含義如何,cache-misseshere in a previous question以及我在上面提到的手冊頁中表示任何緩存都無法提供的內存訪問次數。換句話說,它意味着最後一級緩存中的緩存未命中數量。因此,我想這與LLC-misses相同,但不幸的是我無法確認在我的筆記本電腦上,因爲LLC-misses不受支持。

關於你的最後一個問題,性能監控引起的開銷應該很低。事實上,開銷主要是由於讀取計數器值,並且使用perf stat我猜這個讀數在執行結束時應該只執行一次(考慮到計數器不會溢出)

2

問題2: 如果我看ARM內核代碼(「弓/ ARM /內核/ perf_event_v7.c」)的PERF

緩存缺失意味着ARMV7_PERFCTR_L1_DCACHE_REFILL這意味着一級數據緩存未命中 所以LLC可能意味着低級別的高速緩存未命中(L3可能)

您可以看看體系結構特定的內核代碼ARMV7_PERFCTR_L1_DCACHE_REFILL具有哪些值 以及技術參考手冊,以瞭解該值的含義。 http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0388i/BEHCCEAE.html

問題3: 我相信PERF讀取硬件寄存器計數器(ATLEAST爲HW性能計數器),所以不會真正影響你的代碼的性能。因爲它不會真的把代碼掛在你的代碼中。但是有些論文表示,如果在代碼中使用perf,則性能會降低5%。

相關問題