3

我一直在努力获得每个进程的准确 CPU 使用率和进程空闲 CPU 时间。我尝试了“top”命令 proc/[pid]/stat 文件夹,但仍在尝试我的运气。

TOP 命令为在 fg(foreground) 和 bg(background) 中运行的所有进程提供 CPU 使用率,但我觉得它并不准确.. 因为它显示 %CPU 0,即使进程在后台运行.. 任何其他方法?请帮忙

4

2 回答 2

2

我找到了自己做的方法..我正在使用

  1. proc/[pid]/stat -> 用于每个进程的 CPU Usage 14th 和 15th 参数
  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 回答