Java读取CPU使用率和内存使用率

在开发过程中,我们经常需要监控系统的CPU使用率和内存使用率来优化性能和资源分配。在Java中,我们可以通过一些工具来实现这一目的,比如使用Java Management Extensions(JMX)来读取系统的信息。

读取CPU使用率

下面是一个简单的Java代码示例,用于读取系统的CPU使用率:

import com.sun.management.OperatingSystemMXBean;
import java.lang.management.ManagementFactory;

public class CPUUsageMonitor {
    public static void main(String[] args) {
        OperatingSystemMXBean osBean = (OperatingSystemMXBean) ManagementFactory.getOperatingSystemMXBean();
        double cpuUsage = osBean.getSystemCpuLoad() * 100;
        
        System.out.println("CPU Usage: " + cpuUsage + "%");
    }
}

读取内存使用率

下面是一个简单的Java代码示例,用于读取系统的内存使用率:

import java.lang.management.ManagementFactory;
import com.sun.management.OperatingSystemMXBean;

public class MemoryUsageMonitor {
    public static void main(String[] args) {
        OperatingSystemMXBean osBean = (OperatingSystemMXBean) ManagementFactory.getOperatingSystemMXBean();
        long totalMemory = osBean.getTotalPhysicalMemorySize();
        long freeMemory = osBean.getFreePhysicalMemorySize();
        double memoryUsage = 100 - ((freeMemory * 100.0) / totalMemory);
        
        System.out.println("Memory Usage: " + memoryUsage + "%");
    }
}

可视化展示

为了更直观地展示CPU和内存使用率,我们可以使用饼状图和序列图。

CPU使用率饼状图

pie
title CPU Usage
"Used" : 60
"Free" : 40

内存使用率饼状图

pie
title Memory Usage
"Used" : 70
"Free" : 30

读取系统信息序列图

sequenceDiagram
    participant Client
    participant Server
    Client->>Server: 请求获取CPU使用率
    Server->>Server: 读取系统CPU使用率
    Server-->>Client: 返回CPU使用率数据
    Client->>Server: 请求获取内存使用率
    Server->>Server: 读取系统内存使用率
    Server-->>Client: 返回内存使用率数据

通过上面的代码示例和可视化展示,我们可以更好地了解如何在Java中读取系统的CPU使用率和内存使用率。这些信息可以帮助我们优化系统性能和资源分配,提高应用程序的质量和稳定性。