首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >MemoryPoolMXBean.getUsage()相对于Runtime.freeMemory()的优势

MemoryPoolMXBean.getUsage()相对于Runtime.freeMemory()的优势
EN

Stack Overflow用户
提问于 2009-05-12 11:53:35
回答 1查看 1.3K关注 0票数 3

我需要在正常时间间隔内收集JVM的统计信息。稍后,我需要记录JVM可用内存/空闲内存、使用的内存、总内存。

以下是我想到的两个选择。

  1. ManagementFactory.getMemoryPoolMXBeans()并遍历每个MemoryPoolMXBean,最后使用MemoryPoolMXBean.getUsage()收集统计信息。
  2. Runtime.freeMemory(),Runtime.maxMemory(),Runtime.totalMemory

这是收集统计数据的最好方法。使用MemoryPoolMXBean.getUsage()或运行时类。

EN

回答 1

Stack Overflow用户

发布于 2009-05-12 12:11:03

这是关于在所有应用程序生命周期中监听您的内存使用情况,而不是在应用程序中的不同位置搜索信息。

正如在Java中的内存通知中提到的,您有一种交互式的方法来监视内存,因为您可以向MemoryMXBean中添加通知侦听器。

所以对于实时非常本地的检查,运行时可能就足够了,对于全局监控来说,MemoryMXBeans是最好的选择。

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

https://stackoverflow.com/questions/852352

复制
相关文章

相似问题

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