3

プロセスごとの正確な CPU 使用率とプロセスのアイドル CPU 時間を取得するのに苦労しています..「トップ」コマンド proc/[pid]/stat フォルダを試しましたが、まだ運試し中です..

TOP コマンドは、fg(フォアグラウンド) および bg(バックグラウンド) で実行されているすべてのプロセスの CPU 使用率を示しますが、プロセスがバックグラウンドで実行されている場合でも、%CPU 0 が表示されるため、私が感じるほど正確ではありません。仕方?助けてください

4

2 に答える 2

2

私はそれを自分で行う方法を見つけました..私は使用しています

  1. proc/[pid]/stat -> プロセスごとの CPU 使用率の 14 番目と 15 番目のパラメータ
  2. proc/stat -> すべてのプロセスが同時に CPU を消費する場合
于 2013-05-05T18:07:36.230 に答える
1

次の方法で CPU 使用率を取得できます。

ArrayList<String> list = new ArrayList<String>();
    try {
        // -m 10, how many entries you want, -d 1, delay by how much, -n 1,
        // number of iterations
        Process p = Runtime.getRuntime().exec("top -m 15 -d 1 -n 1");

        BufferedReader reader = new BufferedReader(new InputStreamReader(
                p.getInputStream()));
        int i = 0;
        String line = reader.readLine();
        while (line != null) {
            Log.e("Output "   i, line);
            list.add(line);
            line = reader.readLine();
            i  ;
        }

        p.waitFor();

        Toast.makeText(getBaseContext(), "Got update",Toast.LENGTH_SHORT)
                .show();

    } catch (Exception e) {
        e.printStackTrace();
        Toast.makeText(getBaseContext(), "Caught", Toast.LENGTH_SHORT)
                .show();
    }
于 2014-07-24T07:02:42.890 に答える