【问题标题】:Measuring memory and CPU used by a Java console application with java.lang.management使用 java.lang.management 测量 Java 控制台应用程序使用的内存和 CPU
【发布时间】:2011-06-08 09:58:45
【问题描述】:

我需要测量我的应用程序目前正在使用多少内存和 CPU,并且我需要从同一个应用程序中测量它。任何建议如何做到这一点?我一直在使用 jconsole,但找不到可以让我在控制台应用程序中使用它的 API。

谢谢。

编辑:正如用户 aix 推荐的那样,我使用java.lang.management 来实现我的目标。但是,我对此没有几个问题。这是我写的代码:

MemoryMXBean bean = ManagementFactory.getMemoryMXBean();
MemoryUsage memoryUsage = bean.getHeapMemoryUsage();
double used = (double)memoryUsage.getUsed() / (1024 * 1024); // in MB
double max = (double)memoryUsage.getMax() / (1024 * 1024); // in MB

我从我要测量的应用程序中调用它。这个具体衡量什么?整个应用程序占用的内存?通过当前线程?

【问题讨论】:

    标签: java performance monitoring


    【解决方案1】:

    听起来您正在寻找Java Virtual Machine Monitoring and Management API

    特别是看看MemoryMXBeanThreadMXBean

    【讨论】:

    • 这会有所帮助,谢谢!你能看看我更新的问题吗?
    • @Ivan:AFAIK 没有诸如“线程 X 使用的堆”之类的度量标准(您如何确定由多个线程共享或在线程之间传递的对象)。
    猜你喜欢
    • 2011-06-24
    • 2012-12-13
    • 2017-11-20
    • 1970-01-01
    • 2015-11-07
    • 1970-01-01
    • 2011-12-12
    • 1970-01-01
    • 2011-10-02
    相关资源
    最近更新 更多