如何获得每个进程的准确CPU使用率并处理空闲CPU时间

时间:2013-04-18 10:26:50

标签: android linux operating-system java-native-interface

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

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

2 个答案:

答案 0 :(得分:2)

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

  1. proc / [pid] / stat - > for each process CPU Usage第14和第15个参数
  2. proc / stat - > for all进程同时消耗CPU

答案 1 :(得分: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();
    }