2012-05-01 2 views
1

Я делаю проект на планировщике Linux, который пытается свести к минимуму количество ошибок страницы.номер ошибки номер ошибки произошла в программе на Linux

Я закончил реализацию алгоритма, и мне нужно измерить эффект. Мне интересно, предоставляет ли Linux инструменты для количества ошибок страницы, которые произошли во время всего процесса выполнения?

В принципе, я хочу что-то вроде

$ pfstat ./a.out 
page faults: 3 
Execution Time: 1003 ms 

Есть ли такой инструмент? Я хочу, чтобы убедиться, прежде чем принять решение, чтобы написать один за себя, что будет много работы ...

ответ

1

На большинстве систем /usr/bin/time будет сообщать о сбоях страницы, например:

$ /usr/bin/time /bin/true 
0.00user 0.00system 0:00.00elapsed 0%CPU (0avgtext+0avgdata 1632maxresident)k 
40inputs+0outputs (1major+141minor)pagefaults 0swaps 
+0

Спасибо! Что означают серьезные и незначительные ошибки страниц? –

+0

Я не уверен, что майор и минор 100% четко определены. Но, как правило, основная ошибка означает, что он должен был выполнять некоторые операции ввода-вывода для обслуживания неисправности, например. загрузите страницу с диска. – mpe

+0

Страница «Человек»: ** Основные неисправности **: это ошибки, при которых страница должна считываться с диска. ** Незначительные ошибки **: это ошибки для недопустимых страниц, которые еще не были заявлены другими виртуальными страницами. Таким образом, данные на странице все еще действительны, но системные таблицы должны быть обновлены. – Lazylabs

3

Я рекомендую perf-stat:

$ perf stat make 

Performance counter stats for 'make': 

      4.142908 task-clock    # 0.781 CPUs utilized   
       0 context-switches   # 0.000 K/sec     
       0 CPU-migrations   # 0.000 K/sec     
       318 page-faults    # 0.077 M/sec     
     3,111,777 cycles     # 0.751 GHz      
     1,956,914 stalled-cycles-frontend # 62.89% frontend cycles idle 
     2,275,123 stalled-cycles-backend # 73.11% backend cycles idle 
     11,244,599 instructions    # 3.61 insns per cycle   
              # 0.20 stalled cycles per insn [65.87%] 
    <not counted> branches     
    <not counted> branch-misses   

     0.005305316 seconds time elapsed 

Он подсчитывает ошибки страницы, а также множество других счетчиков производительности.

Для этого вам необходимо установить пакет perf.