Linux を搭載したマシンで実行されているすべてのプロセスのパーセンテージを表示するプログラムに取り組んでいます。top
問題は、得られるパーセンテージがコマンドによって表示されるパーセンテージとしばしば異なることです。
Web で何時間も検索しましたが、見つけたものはほぼ常に同じ式です
100 * (stime + utime)/ (totalCPUTime - processStartTime)
.
/proc/stat
、 while stime
、utime
およびの 7 つの CPU 値を合計した totalCPUTime を取得しprocessStartTime
ます/proc/<pid>/stat
。私は何か間違ったことをしていますか?マルチコア マシンでプログラムを実行しているという事実は、なんらかの結果に影響しますか?
トップがこの値をどのように計算するか知っている人はいますか?
ありがとうございました