1

私は、ページフォールトの数を最小限に抑えようとするLinuxスケジューラーでプロジェクトを行っています。

アルゴリズムの実装が完了したので、効果を測定する必要があります。Linuxが、実行プロセス全体で発生したページフォールトの記録的な数に対応するツールを提供しているかどうか疑問に思っていますか?

基本的には

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

そのようなツールはありますか?自分で書くことを決める前に確認したいのですが、大変な作業になります...

4

2 に答える 2

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

于 2012-09-26T09:33:38.540 に答える
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
于 2012-05-01T03:35:52.620 に答える