2019-java程序占用cpu过高-范文word版 (14页)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
本文部分内容来自网络整理,本司不为其真实性负责,如有异议或侵权请及时联系,本司将立即删除!
== 本文为word格式,下载后可方便编辑和修改! ==
java程序占用cpu过高
篇一:用java获取CPU占用率
用java获取CPU占用率
废话不说,代码如下:
Bytes.java
引用:
Class Bytes{
public static String
substring(Stringsrc,intstart_idx,intend_idx){ byte[]b=src.getBytes(); Stringtgt="";
for(inti=start_idx;i<=end_idx;i++){
tgt+=(char)b;
}
returntgt;
}
}
MonitorInfoBean.java
引用:
Public class MonitorInfoBean{
/**线程总数.*/
private int totalThread;
/**cpu使用率.*/
private double cpuRatio;
public int getTotalThread(){
return totalThread;
}
public void setTotalThread(int totalThread){ this.totalThread=totalThread;
}
publicdoublegetCpuRatio(){
returncpuRatio;
}
publicvoidsetCpuRatio(doublecpuRatio){
this.cpuRatio=cpuRatio;
}
}
CPU.java
引用:
importjava.io.BufferedReader;
importjava.io.IOException;
importjava.io.InputStream;
importjava.io.InputStreamReader; importjava.io.LineNumberReader;
importjava.util.StringTokenizer;
Public class CPU{
private static finalint CPUTIME=30;
private static finalint PERCENT=100;
private static finalint FAULTLENGTH=10;
private static String linuxVersion=null;
public double getCpuRatio(){
//操作系统
StringosName=System.getProperty("");
double cpuRatio=0;
if(osName.toLowerCase().startsWith("windows")){
cpuRatio=this.getCpuRatioForWindows();
}else{
cpuRatio=this.getCpuRateForLinux();
}
return cpuRatio;
}
/**
*获得当前的监控对象.
*
*@return返回构造好的监控对象
*/
publicMonitorInfoBeangetMonitorInfoBean()throwsException{ //操作系统
StringosName=System.getProperty("");
//获得线程总数
ThreadGroupparentThread;for(parentThread=Thread.currentThread().getTh readGroup();parentThread
.getParent()!=null;parentThread=parentThread.getParent())
;
inttotalThread=parentThread.activeCount();
doublecpuRatio=0;
if(osName.toLowerCase().startsWith("windows")){
cpuRatio=this.getCpuRatioForWindows();
}else{
cpuRatio=this.getCpuRateForLinux();
}
//构造返回对象
MonitorInfoBeaninfoBean=newMonitorInfoBean();
infoBean.setTotalThread(totalThread);
infoBean.setCpuRatio(cpuRatio);
returninfoBean;
}
private static doubleg etCpuRateForLinux(){
InputStreamis=null;
InputStreamReaderisr=null;
BufferedReaderbrStat=null;
StringTokenizertokenStat=null;
try{。