Ubuntu 12.04.5 LTSで実行されるコマンドラインツールがあります。このプログラムのCPU時間を計算する必要があります。 /usr/bin/time 機能を確認しています。
注文する: /usr/bin/time -v -a -o timelog.dat command args
同じハードウェアで同じコマンドを2回実行しました。 2回の実行結果は次のとおりです。
最初の実行:
User time (seconds): 4085.50
System time (seconds): 4.75
Percent of CPU this job got: 54%
Elapsed (wall clock) time (h:mm:ss or m:ss): 2:04:19
Maximum resident set size (kbytes): 5093280
Average resident set size (kbytes): 0
Major (requiring I/O) page faults: 0
Minor (reclaiming a frame) page faults: 384474
Voluntary context switches: 436
Involuntary context switches: 628160
Swaps: 0
File system inputs: 24
File system outputs: 102936
2回目の実行:
User time (seconds): 2694.91
System time (seconds): 2.51
Percent of CPU this job got: 99%
Elapsed (wall clock) time (h:mm:ss or m:ss): 45:18.91
Maximum resident set size (kbytes): 5093280
Average resident set size (kbytes): 0
Major (requiring I/O) page faults: 0
Minor (reclaiming a frame) page faults: 384483
Voluntary context switches: 223
Involuntary context switches: 4321
Swaps: 0
File system inputs: 9288
File system outputs: 100136
サーバーCPU仕様:Clock speed: 2.4 GHz, Turbo Speed: 2.7 GHz, 8 physical cores, 16 threads
だから最初に実行したとき、サーバーは完全なロード状態であり、16以上のプロセスがありました。 2番目の実行には7つのプロセスがあります。私が取得するタイミング情報をどのように決定しますか? CPU使用率がすべて99%の場合、この2つの実行を比較できますか?プロセスにかかる正確な時間を測定する他の方法はありますか?/usr/bin/time
関数はCPU時間を計算する必要がありますが、なぜまったく異なる結果が出るのでしょうか。
どんな助けでも大変感謝します。
よろしくお願いします、サーハット