Есть ли способ профилировать отсутствие кеша в ядре Linux? - PullRequest
1 голос
/ 22 февраля 2012

Я занимаюсь профилированием процесса. Я должен профилировать время процессора, время блокировки ввода-вывода .. и # кэш пропускает. Но я не знаю, как получить ошибки в кеше. Я анализирую исходный код ядра, но не знаю, как это сделать. Я знаю, где находится исходный код очереди выполнения. Как я могу получить число пропусков кэша процесса? Я думаю, что это может быть конкретный или технический вопрос. Итак, если вы не решаетесь отвечать напрямую, пожалуйста, дайте мне несколько советов или порекомендуйте книгу о том, как получить количество пропущенных кешей. Прямой ответ - ЛУЧШИЙ. Заранее спасибо.

1 Ответ

5 голосов
/ 22 февраля 2012

perf , cachegrind , oprofile , PTU , CodeAnalyst и Zoom Есть несколько вариантов

perf stat \
  --repeat 10 \
  -e cycles:u \
  -e instructions:u \
  -e l1-dcache-loads:u \
  -e l1-dcache-load-misses:u \
  -e l1-icache-loads:u \
  -e l1-icache-load-misses:u \
  -e llc-loads:u \
  -e llc-load-misses:u \
  a.out

Параметры перфорации: https://perf.wiki.kernel.org/articles/t/u/t/Tutorial.html

...