版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
用java获取CPU占用率废话不说,代码如下:Bytes.java引用:ClassBytes(publicstaticStringsubstring(Stringsrc,intstart_idx,intend_idx){byte[]b=src.getBytes();Stringtgt=〃〃;for(inti二start_idx;i<=end_idx;i++){tgt+=(char)b;}returntgt;}}MonitorInfoBean.java引用:PublicclassMonitorInfoBean{/**线程总数*/privateinttotalThread;/**cpu使用率*/privatedoublecpuRatio;publicintgetTotalThread(){returntotalThread;}publicvoidsetTotalThreadinttotalThread){this.totalThread二totalThread;}publicdoublgetCpuRatio(){returncpuRatio;}publicvoisetCpuRatiodoublecpuRatio){this.cpuRati。二cpuRatio;}}CPU.java引用:importjava.io.BufferedReader;importjava.io.IOException;importjava.io.InputStream;importjava.io.InputStreamReader;importjava.io.LineNumberReader;importjava.util.StringTokenizer;PublicclassCPU{privatestaticfinalintCPUTIME=30;privatestaticfinalintPERCENT=100;privatestaticfinalintFAULTLENGTH=10;privatestaticStringlinuxVersionnull;publicdoublegetCpuRatio(){//操作系统StringosName二System.getProperty(〃〃);doublecpuRati。=0;if(osName.toLowerCase().startsWith(〃windows〃)){cpuRati。二this.getCpuRatioForWindows();}else{cpuRati。二this.getCpuRateForLinux();}returncpuRatio;}/***获得当前的监控对象**@return返回构造好的监控对象*/publicMonitorInfoBeangetMonitorInfoBeanthrowsException{//操作系统StringosName二System.getProperty(〃〃);//获得线程总数ThreadGroupparentThreadfor(parentThread二Thread.currentThread().getThreadGroup();parentThread.getParent()!null;parentThread二parentThread.getParent());inttotalThread二parentThread.activeCount();doublecpuRati。=0;if(osName.toLowerCase().startsWith(〃windows〃)){cpuRati。二this.getCpuRatioForWindows();}else{cpuRati。二this.getCpuRateForLinux();}//构造返回对象MonitorInfoBeaninfoBeannewMonitorInfoBean();infoBean.setTotalThread(totalThread);infoBean.setCpuRatio(cpuRatio);returninfoBean;}privatestaticdoublgetCpuRateForLinux(){InputStreamisnull;InputStreamReaderisrnull;BufferedReaderbrStatnull;StringTokenizertokenStatnull;try{System.out.println(〃GetusagerateofCUP,linuxversion:〃+linuxVersion);Processprocess二Runtime.getRuntime().exec(〃top-b-n1〃);is二process.getInputStream();isr二newInputStreamReader(is);brStat二newBufferedReader(isr);if(linuxVersion.equals(〃2.4〃)){brStat.readLine();brStat.readLine();brStat.readLine();brStat.readLine();tokenStatnewStringTokenizer(brStat.readLine());tokenStat.nextToken();tokenStat.nextToken();Stringuser二tokenStat.nextToken();tokenStat.nextToken();Stringsystem二tokenStat.nextToken();tokenStat.nextToken();Stringnice二tokenStat.nextToken();System.out.println(user+〃,〃+system+〃,〃+nice);user二user.substring(0,user.indexOf(〃%〃));system二system.substring(0,system.indexOf(〃%〃));nice二nice.substring(0,nice.indexOf(〃%〃));floatuserUsagenewFloat(user).floatValue();floatsystemUsagenewFloat(system).floatValue();floatniceUsagenewFloat(nice).floatValue();return(userUsage+systemUsage+niceUsage)/100;}else{brStat.readLine();brStat.readLine();tokenStatnewStringTokenizer(brStat.readLine());tokenStat.nextToken();tokenStat.nextToken();tokenStat.nextToken();tokenStat.nextToken();tokenStat.nextToken();tokenStat.nextToken();tokenStat.nextToken();StringcpuUsage二tokenStat.nextToken();System.out.println(〃CPUidle:〃+cpuUsage);FloatusagenewFloat(cpuUsage.substring(0,cpuUsage.indexOf(〃%〃)));return(1-usage.floatValue()/100);}}catch(IOExceptionioe){System.out.println(ioe.getMessage());freeResource(is,isr,brStat);return1;}finally{freeResource(is,isr,brStat);}}privatestaticvoifreeResource(InputStreamis,InputStreamReaderisr,BufferedReaderbr){try{if(is!=null)is.close();if(isr!二null)isr.close();if(br!=null)br.close();}catch(IOExceptionioe){System.out.println(ioe.getMessage());}}/***获得CPU使用率**@return返回cpu使用率*/privatedoublegetCpuRatioForWindows(){try{StringprocCmd二System.getenv(〃windir〃)+〃\\system32\\wbem\\wmic.exeprocessgetCaption,CommandLine,〃+〃KernelModeTime,ReadOperationCount,ThreadCount,UserModeTime,WriteOperationCount";//取进程信息long[]c0=readCpu(Runtime.getRuntime().exec(procCmd));Thread.sleep(CPUTIME);long[]c1=readCpu(Runtime.getRuntime().exec(procCmd));if(c0!=null&&c1!=null){longidletime=c1[0]-c0[0];longbusytime=c1[1]-c0[1];returnDouble.valueOf(PERCENT*(busytime)/(busytime+idletime)).doubleValue();}else{return0.0;}}catch(Exceptionex){ex.printStackTrace();return0.0;}}/****读取CPU信息**@paramproc*/privatelon[]readCpufinalProcessproc){long[]retn=newlong[2];try{proc.getOutputStream().close();InputStreamReaderirnewInputStreamReader(proc.getInputStream());LineNumberReaderinputnewLineNumberReader(ir);Stringline二input.readLine();if(line==)ull||line.length()<FAULTLENGTH){returnnull;}intcapidx二line.indexOf(〃Caption〃);intcmdidx二line.indexOf(〃CommandLine〃);introcidx二line.indexOf(〃ReadOperationCount〃);intumtidx二line.indexOf(〃UserModeTime〃);intkmtidx二line.indexOf(〃KernelModeTime〃);intwocidx二line.indexOf(〃WriteOperationCount〃);longidletime=0;longkneltime=0;longusertime=0;while((line二input.readLine())!null){if(line.length()<wocidx){continue;}Stringcaption二Bytes.substring(line,capidx,cmdidx-1).trim();Stringcmd二Bytes.substring(line,cmdidx,kmtidx-1).trim();if(cmd.indexOf(〃wmic.exe〃)>=0){continue;}if(caption.equals(〃SystemIdleProcess〃)||caption.equals(〃System〃)){idletime+=Long.valueOf(Bytes.substring(line,kmtidx,rocidx-1).trim()).longValue();idletime+=Long.valueOf(Bytes.substring(line,umtidx,wocidx-1).trim()).longValue();continue;}kneltime+=Long.valueOf(Bytes.substring(line,kmtidx,rocidx-1).trim()).longValue();usertime+=Long.valueOf(Bytes.substring(line,umtidx,wocidx-1).trim()).longValue();}retn[0]=idletime;retn[1]=kneltime+usertime;returnretn;}catch(Exceptionex){ex.printStac
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026洞头海霞青年营度假酒店招聘5人备考题库(浙江)及答案详解(必刷)
- 2026天津联通派遣制智家工程师、营业员招聘5人备考题库附答案详解(研优卷)
- 2026福建三明将乐县事业单位招聘工作人员42人备考题库含答案详解(模拟题)
- 雨课堂学堂在线学堂云《食品工程伦理(江南)》单元测试考核答案
- 服装厂订单管理准则
- 婚纱摄影服务合同
- 2026广东汕头大学医学院实验动物中心劳务派遣人员招聘4人备考题库及完整答案详解
- 2026四川成都市锦江区学府幼儿园招聘员额教师2人备考题库附答案详解【完整版】
- 2026内蒙古呼和浩特市实验幼儿园招聘教师1人备考题库及参考答案详解(精练)
- 2026黑龙江黑河市第一人民医院上半年招聘劳动合同制工作人员6人备考题库有答案详解
- 声屏障供应合同协议
- 2025年河南建筑职业技术学院单招职业技能测试题库审定版
- 员工放弃社保协议书范本
- 2025福建高中春季高考学业水平考试数学测试卷
- 新生儿呼吸道合胞病毒感染病因介绍
- 电力应急演练
- 批量伤员救治
- 车站调度员(技师)技能鉴定理论考试题库(含答案)
- 耳针法(耳穴埋豆)操作评分标准
- MOOC 刑法学总论-西南政法大学 中国大学慕课答案
- (新版)烟叶分级工(技师)专业知识考试题库大全-2烟叶加工和使用
评论
0/150
提交评论