首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Java分析系统内存/cpu状态

用Java分析系统内存/cpu状态
EN

Stack Overflow用户
提问于 2013-03-14 05:26:57
回答 1查看 1.3K关注 0票数 0

我想要简单的结果,如总内存,空闲内存,CPU使用等在我的Unix系统上。目前,我正在使用shell命令top

中有做同样事情的功能吗?

我的目标是通过谷歌规范图表在网络应用程序中显示结果。因此,显然,我更容易使用Java,而不是在Java中执行Unix命令。

提前感谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-14 05:40:07

代码语言:javascript
复制
OperatingSystemMXBean operatingSystemMXBean = 
    ManagementFactory.getOperatingSystemMXBean();

for (Method method: operatingSystemMXBean.getClass ().getMethods ()) 
{
    method.setAccessible (true);
    String methodName = method.getName ();
    if (methodName.startsWith ("get")
        && Modifier.isPublic (method.getModifiers ())
        && OperatingSystemMXBean.class.isAssignableFrom (
            method.getDeclaringClass ())) {
        try
        {
            System.out.println (
                methodName.substring (3) + ": " + 
                method.invoke (operatingSystemMXBean));
        }
        catch (Throwable ex)
        {
            // Ignore
        }
    }
}

在不同的操作系统和Java版本上,输出是不同的。下面是Linux上JDK1.7的输出:

代码语言:javascript
复制
FreeSwapSpaceSize: 2172059648
FreePhysicalMemorySize: 1757573120
CommittedVirtualMemorySize: 26741071872
MaxFileDescriptorCount: 8192
OpenFileDescriptorCount: 4
ProcessCpuLoad: 2.0251808355598717E-10
ProcessCpuTime: 60000000
SystemCpuLoad: 0.03673989450920194
TotalPhysicalMemorySize: 101439979520
TotalSwapSpaceSize: 4294950912
Name: Linux
ObjectName: java.lang:type=OperatingSystem
AvailableProcessors: 12
Arch: amd64
SystemLoadAverage: 1.86
Version: 2.6.32.54-0.3-default

SystemLoadAveragetop命令报告的load average相同。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15401842

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档