top -n 1 -b
アイドルCPUレートを取得するために、QtアプリケーションでLinuxコマンドを呼び出しています。アプリは3秒ごとに命令を呼び出しますが、CPU使用率はアプリが最初に命令を呼び出すときにのみ更新されるように見えます。たびに)。コンソールで「top -n 2 -b」コマンドを手動でテストすると、「ライブ」CPUは2回目の反復後にのみ更新されます。 CPU値を更新するためにアプリケーションの2回目の反復を待つことができないので、最初の反復でこの値を更新するために変更できるシステム変数またはキャッシュがあるかどうか疑問に思います。
ベストアンサー1
各top
反復では、/proc/stat
CPUラインを読み取り、その値を以前に読み取った値(最初の反復でゼロであった値)と比較します。 3秒前に得られた値と比較すると、その3秒間の平均CPU状態分布がわかります。 0と比較すると、システム全体の稼働時間の平均が得られます(システムの起動時にすべて0です)。つまり、/proc/stat
最初の反復でtop
有効なパーセンテージがありますが、平均が長く更新されないようです。
手動で解析する場合でも、/proc/stat
異なる時間に2回の読み取りが必要です。