java获得CPU使用率,系统内存,虚拟…

简介: 程序计算时间: longstartTime=System.currentTimeMillis();  //获取开始时间 。。。。。。。。。。。。
程序计算时间:

longstartTime=System.currentTimeMillis();  //获取开始时间

。。。。。。。。。。。。
long endTime=System.currentTimeMillis(); //获取结束时间

System.out.println("程序运行时间: "+(endTime-startTime)+"ms(毫秒)");






 利用java程序实现获取计算机cpu利用率和内存使用信息。  
 
   创建一个Bean用来存贮要得到的信   
 
public class MonitorInfoBean {  
      
    private longtotalMemory;   
    
      
    private longfreeMemory;   
    
      
    private longmaxMemory;   
    
      
    privateString osName;   
    
      
    private longtotalMemorySize;   
    
      
    private longfreePhysicalMemorySize;   
    
      
    private longusedMemory;   
    
      
    private inttotalThread;   
    
      
    privatedouble cpuRatio;   
 
    public longgetFreeMemory() {   
       return freeMemory;   
   }   
 
    public voidsetFreeMemory(long freeMemory) {  
       this.freeMemory = freeMemory;  
   }   
 
    public longgetFreePhysicalMemorySize() {  
       return freePhysicalMemorySize;  
   }   
 
    public voidsetFreePhysicalMemorySize(long freePhysicalMemorySize){   
       this.freePhysicalMemorySize =freePhysicalMemorySize;   
   }   
 
    public longgetMaxMemory() {   
       return maxMemory;   
   }   
 
    public voidsetMaxMemory(long maxMemory) {  
       this.maxMemory = maxMemory;  
   }   
 
    publicString getOsName() {   
       return osName;   
   }   
 
    public voidsetOsName(String osName) {  
       this.osName = osName;   
   }   
 
    public longgetTotalMemory() {   
       return totalMemory;   
   }   
 
    public voidsetTotalMemory(long totalMemory) {  
       this.totalMemory = totalMemory;  
   }   
 
    public longgetTotalMemorySize() {   
       return totalMemorySize;   
   }   
 
    public voidsetTotalMemorySize(long totalMemorySize) {  
       this.totalMemorySize = totalMemorySize;  
   }   
 
    public intgetTotalThread() {   
       return totalThread;   
   }   
 
    public voidsetTotalThread(int totalThread) {  
       this.totalThread = totalThread;  
   }   
 
    public longgetUsedMemory() {   
       return usedMemory;   
   }   
 
    public voidsetUsedMemory(long usedMemory) {  
       this.usedMemory = usedMemory;  
   }   
 
    publicdouble getCpuRatio() {   
       return cpuRatio;   
   }   
 
    public voidsetCpuRatio(double cpuRatio) {  
       this.cpuRatio = cpuRatio;  
   }   
}   
 
   之后,建立bean的接口   
 
public interface IMonitorService {  
    publicMonitorInfoBean getMonitorInfoBean() throwsException;   
 
}   
 
 然后,就是最关键的,得到cpu的利用率,已用内存,可用内存,最大内存等信息。  
 
import java.io.InputStreamReader;  
import java.io.LineNumberReader;  
 
import sun.management.ManagementFactory;  
 
import com.sun.management.OperatingSystemMXBean;  
import java.io.*;   
import java.util.StringTokenizer;  
 
   
public class MonitorServiceImpl implements IMonitorService{   
    
    privatestatic final int CPUTIME = 30;  
 
    privatestatic final int PERCENT = 100;  
 
    privatestatic final int FAULTLENGTH = 10;  
    
    privatestatic final File versionFile = newFile("/proc/version");   
    privatestatic String linuxVersion = null;  
 
      
    publicMonitorInfoBean getMonitorInfoBean() throws Exception{   
       int kb = 1024;   
        
       // 可使用内存   
       long totalMemory = Runtime.getRuntime().totalMemory() /kb;   
       // 剩余内存   
       long freeMemory = Runtime.getRuntime().freeMemory() /kb;   
       // 最大可使用内存   
       long maxMemory = Runtime.getRuntime().maxMemory() /kb;   
 
       OperatingSystemMXBean osmxb = (OperatingSystemMXBean)ManagementFactory   
               .getOperatingSystemMXBean();  
 
       // 操作系统   
       String osName = System.getProperty("os.name");  
       // 总的物理内存   
       long totalMemorySize = osmxb.getTotalPhysicalMemorySize() /kb;   
       // 剩余的物理内存   
       long freePhysicalMemorySize = osmxb.getFreePhysicalMemorySize() /kb;   
       // 已使用的物理内存   
       long usedMemory = (osmxb.getTotalPhysicalMemorySize() -osmxb   
               .getFreePhysicalMemorySize())  
               / kb;   
 
       // 获得线程总数   
       ThreadGroup parentThread;  
       for (parentThread = Thread.currentThread().getThreadGroup();parentThread   
               .getParent() != null; parentThread =parentThread.getParent())  
           ;   
       int totalThread = parentThread.activeCount();  
 
       double cpuRatio = 0;   
       if (osName.toLowerCase().startsWith("windows")) {  
           cpuRatio = this.getCpuRatioForWindows();  
       }   
       else {   
        cpuRatio = this.getCpuRateForLinux();  
       }   
        
       // 构造返回对象   
       MonitorInfoBean infoBean = new MonitorInfoBean();  
       infoBean.setFreeMemory(freeMemory);  
       infoBean.setFreePhysicalMemorySize(freePhysicalMemorySize);  
       infoBean.setMaxMemory(maxMemory);  
       infoBean.setOsName(osName);  
       infoBean.setTotalMemory(totalMemory);  
       infoBean.setTotalMemorySize(totalMemorySize);  
     
目录
相关文章
|
4天前
|
运维 Java
Java版HIS系统 云HIS系统 云HIS源码 结构简洁、代码规范易阅读
云HIS系统分为两个大的系统,一个是基层卫生健康云综合管理系统,另一个是基层卫生健康云业务系统。基层卫生健康云综合管理系统由运营商、开发商和监管机构使用,用来进行运营管理、运维管理和综合监管。基层卫生健康云业务系统由基层医院使用,用来支撑医院各类业务运转。
23 5
|
1天前
|
存储 安全 Java
滚雪球学Java(19):JavaSE中的内存管理:你所不知道的秘密
【4月更文挑战第8天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
15 4
滚雪球学Java(19):JavaSE中的内存管理:你所不知道的秘密
|
5天前
|
JavaScript Java 测试技术
基于Java的电影评论系统的设计与实现(源码+lw+部署文档+讲解等)
基于Java的电影评论系统的设计与实现(源码+lw+部署文档+讲解等)
20 0
|
5天前
|
JavaScript Java 测试技术
基于Java的实验室设备管理系统的设计与实现(源码+lw+部署文档+讲解等)
基于Java的实验室设备管理系统的设计与实现(源码+lw+部署文档+讲解等)
16 1
|
6天前
|
JavaScript Java 测试技术
基于Java的社区人员管理系统的设计与实现(源码+lw+部署文档+讲解等)
基于Java的社区人员管理系统的设计与实现(源码+lw+部署文档+讲解等)
23 2
|
6天前
|
JavaScript Java 测试技术
基于Java的公司员工工作日志办公系统的设计与实现(源码+lw+部署文档+讲解等)
基于Java的公司员工工作日志办公系统的设计与实现(源码+lw+部署文档+讲解等)
28 3
|
6天前
|
JavaScript Java 测试技术
基于Java的图书馆智能选座系统的设计与实现(源码+lw+部署文档+讲解等)
基于Java的图书馆智能选座系统的设计与实现(源码+lw+部署文档+讲解等)
22 2
|
6天前
|
JavaScript Java 测试技术
基于Java的精品课程在线学习系统的设计与实现(源码+lw+部署文档+讲解等)
基于Java的精品课程在线学习系统的设计与实现(源码+lw+部署文档+讲解等)
25 1
|
6天前
|
JavaScript Java 测试技术
基于Java的高校大学生党建系统的设计与实现(源码+lw+部署文档+讲解等)
基于Java的高校大学生党建系统的设计与实现(源码+lw+部署文档+讲解等)
24 1
|
6天前
|
JavaScript Java 测试技术
基于Java的学生课堂考勤系统的设计与实现(源码+lw+部署文档+讲解等)
基于Java的学生课堂考勤系统的设计与实现(源码+lw+部署文档+讲解等)
21 0