Atitit. 获取cpu占有率的 java c# .net php node.js的实现
通过wmic接口获取cpu占有率
C:\Users\Administrator.ATTILAXPC188>wmic cpu get LoadPercentage
LoadPercentage
71
注意:平均cpu占用率的计算
我们获取的都是瞬间的cpu占用,需要一段时间内的平均cpu才比较好
/atiplat_cms/src/com/attilax/device/Calcor.java
其次,获取的cpu,是总cpu,如果需要精确制导每个核心的占用,也可以使用这个命令的详细版本。
此外,这个wmic接口在cpu繁忙的情况下获取不到数值,可能是os的问题。策略。。
作者:: 绰号:老哇的爪子 ( 全名::Attilax Akbar Al Rapanui 阿提拉克斯 阿克巴 阿尔 拉帕努伊 )
汉字名:艾提拉(艾龙)
降低cpu占用
使用sleep技术最适合。可以变相的控制threadPool任务数量
public static int getCpuRate() throws CantGetData {
String getCpuRate = "wmic cpu get LoadPercentage";
String ret = CmdX.exec(getCpuRate);
logger.info("--wmic cpu:" + ret);
String[] a = ret.split("\n");
List<String> li = Lists.newArrayList();
for (String string : a) {
String line = string.trim();
if (line.length() == 0)
continue;
li.add(line);
}
String cpu = null;
if (li.size() == 1)
throw new CantGetData(ret);
// String cpu = li.get(li.size() - 1);
// try {
cpu = li.get(1).toString().trim();
// } catch (Exception e) {
// throw new
// }
return Integer.parseInt(cpu.toString());
}
参考资料