【问题标题】:Programatically get heap info using jmx with java 5使用带有 java 5 的 jmx 以编程方式获取堆信息
【发布时间】:2010-10-02 12:54:21
【问题描述】:

我知道使用 jconsole 附加到 java 进程以获取内存信息。具体来说,我正在以编程方式获取各种内存池的信息,以便将其绑定到监控应用程序。

谢谢!

【问题讨论】:

    标签: java memory heap-memory jmx


    【解决方案1】:

    查看java.lang.management.MemoryPoolMXBean 和相关课程。

    【讨论】:

      【解决方案2】:

      感谢 mattk - 我基本上是这样做的 :-)

      List memBeans = ManagementFactory.getMemoryPoolMXBeans();           
      for (Iterator i = memBeans.iterator(); i.hasNext(); ) {
      
          MemoryPoolMXBean mpool = (MemoryPoolMXBean)i.next();
          MemoryUsage usage = mpool.getUsage();
      
          String name = mpool.getName();      
          float init = usage.getInit()/1000;
          float used = usage.getUsed()/1000;
          float committed = usage.getCommitted()/1000;
          float max = usage.getMax()/1000;
          float pctUsed = (used / max)*100;
          float pctCommitted = (committed / max)*100;
      
      }
      

      【讨论】:

        猜你喜欢
        • 2011-06-20
        • 2015-10-29
        • 1970-01-01
        • 2023-03-10
        • 2015-01-06
        • 2021-12-12
        • 1970-01-01
        • 2017-01-06
        • 1970-01-01
        相关资源
        最近更新 更多