📄 meminfo.java
字号:
/**
*
*/
package com.doone.wskfmgr.business.monitor.data;
import java.util.StringTokenizer;
import com.doone.wskfmgr.business.monitor.EchoClient;
/**
* @author chenc
* 作用:获取内存信息,并合算出内存使用率;
*/
public class MemInfo implements DataIntegrate {
/* (non-Javadoc)
* @see com.doone.wskfmgr.business.monitor.data.DataIntegrate#getData()
*/
private static MemInfo meminfo = null;
public final static MemInfo newInstence() {
if (meminfo == null) {
meminfo = new MemInfo();
}
return meminfo;
}
public double[] getData() {
double[] mem = new double[4];
double[] meminfo = new double[2];
String fromServer = EchoClient.clientTest(EchoClient.MEMORY);
StringTokenizer token = new StringTokenizer(fromServer,"#");
int i = 0;
while (token.hasMoreTokens()) {
mem[i++] = Float.parseFloat(token.nextToken());
}
try {
//为什么这么算,根据不同的基于UNIX核心的Linux系统的虚拟文件系统有不同的算法。详情请参考网上资料 :)。
meminfo[0] = (double) (mem[0] - mem[1]) / mem[0];//memory utilization
meminfo[1] = (double) (mem[2] - mem[3]) / mem[2]; //Swap utilization
} catch (NumberFormatException e) {
System.out.println(e.getMessage());
}
return meminfo;
}
public static void main(String[] args) {
System.out.println(MemInfo.newInstence().getData()[0]);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -