Linux环境下用Java获取CPU的使用率
来源:互联网 发布:昆山ug编程培训学费 编辑:程序博客网 时间:2024/06/05 23:41
在Java编程过程中希望知道CPU的使用率,以便决定是否加载任务。首先用google搜了一下,Windows环境可以用JNI通过API函数 getProcessCPUTime()来得到,并有人给出了源代码。Linux好像还没有谁给出源代码,于是决定自己写一个,经过实践,终于成功,现将代码贴出,与大家共享。
思路如下:Linux系统中可以用top命令查看进程使用CPU和内存情况,通过Runtime类的exec()方法系统命令"top”,获取"top"的输出,从而得到CPU和内存的使用情况。对本程序稍加改动,还可以得到内存的使用情况。
/**
* @author wanlh
* @version 1.0
*/
import java.io.*;
public class CpuUsage {
public double getCpuUsage() throws Exception {
double cpuUsed = 0;
Runtime rt = Runtime.getRuntime();
Process p = rt.exec("top -b -n 1");// 调用系统的“top"命令
BufferedReader in = null;
try {
in = new BufferedReader(new InputStreamReader(p.getInputStream()));
String str = null;
String[] strArray = null;
while ((str = in.readLine()) != null) {
int m = 0;
if (str.indexOf(" R ") != -1 && str.indexOf("top") == -1) {// 只分析正在运行的进程,top进程本身除外
strArray = str.split(" ");
for (String tmp : strArray) {
if (tmp.trim().length() == 0)
continue;
if (++m == 9) {// 第9列为CPU的使用百分比(RedHat 9)
cpuUsed += Double.parseDouble(tmp);
}
}
// System.out.println(str);
}
}
} catch (Exception e) {
e.printStackTrace();
} finally {
in.close();
}
return cpuUsed;
}
public static void main(String[] args) throws Exception {
CpuUsage cpu = new CpuUsage();
System.out.println("cpu used:" + cpu.getCpuUsage() + "%");
}
}
- Linux环境下用Java获取CPU的使用率
- Linux下,java获取CPU使用率、内存使用率
- Linux下,java获取CPU使用率、内存使用率
- linux下用java程序获取cpu和内存的使用率
- Linux下java获取CPU、内存、磁盘IO、网络带宽使用率
- Linux下java获取CPU、内存、磁盘IO、网络带宽使用率
- Linux下使用java获取cpu、内存使用率
- Linux下java获取CPU、内存、磁盘IO、网络带宽使用率
- Linux下java获取CPU、内存、磁盘IO、网络带宽使用率
- Linux 环境下监控进程内存和CPU的使用率
- java获取cpu使用率/内存使用率/硬盘的使用率
- java获取cpu使用率/内存使用率/硬盘的使用率
- java获取cpu使用率/内存使用率/硬盘的使用率
- linux下获取cpu和内存使用率
- LINUX下获取CPU和内存使用率
- Linux 下使用Sigar 获取CPU 使用率
- java获得linux环境的硬盘、内存、cpu使用率
- linux下实现CPU使用率和内存使用率获取方法
- 2006德国世界杯完全赛程表
- 吴式太极拳初学答疑难惑
- DarkSpy V1.0.4 by cardmagic
- varchar[(n)] 和nvarchar(n) 及使用unicode的意义
- 汇编实现16位有符号数的输入~~~~~~
- Linux环境下用Java获取CPU的使用率
- 16位有符号整型数据的输出~~~~
- eclipse安装及汉化全过程
- 一些技术文章的收藏链接
- 中关村2小时游^_^
- Windows 程序设计(第5版)不完全勘误表(添加中……)
- 面向对象编程技术(作业题二)
- Vim的行号、语法显示等设置,即.vimrc文件的配置
- 努力的方向