- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
使用 MemoryMXBean 进行运行时内存分析时,我得到了一个有趣的效果。我想与非堆一起确定堆中的空闲内存。所以我的代码如下所示:
static MemoryMXBean mbean = ManagementFactory.getMemoryMXBean();
long fullused = mbean.getHeapMemoryUsage().getUsed() + mbean.getNonHeapMemoryUsage().getUsed();
long fullmax = mbean.getHeapMemoryUsage().getMax() + mbean.getNonHeapMemoryUsage().getMax();
long fullfree = fullmax - fullused;
有时 fullFree 的结果是负值。怎么可能?在计算已用内存后进行一些垃圾收集的竞争条件?在我的日志中我经常看到它,所以我怀疑竞争条件理论。还有其他想法吗?
最佳答案
NonHeap 的最大值可以是 -1。您可以通过 jconsole 为您的应用程序检查这一点。在热点源中,内存使用量的计算是在 jmm_GetMemoryUsage
方法中完成的。如果非堆内存池之一未定义最大大小,则整个非堆中的最大大小将为 -1。元空间池(没有 MaxMetaspaceSize 命令标志)具有未定义的最大大小
关于Java MemoryMXBean 使用内存大于最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37969834/
使用 MemoryMXBean 进行运行时内存分析时,我得到了一个有趣的效果。我想与非堆一起确定堆中的空闲内存。所以我的代码如下所示: static MemoryMXBean mbean = Mana
JMX 通知监听器会占用多少内存? 我有一个最大堆较小的 Java 7 应用程序。 我使用单个 MemoryMXBean 通知监听器来监视它,并且大部分堆都已用完。内存分析器报告: One insta
我正在与一个开发在 1GB Linux 目标系统上运行的 Java GUI 应用程序的团队合作。 我们的 java 进程使用的内存会无限增长,直到 Linux 最终杀死 java 进程。 我们的堆内存
我找到了这篇很好的文章,它解释了如何为您的 VM 查询当前内存 http://recursor.blogspot.com/2006/10/memory-notifications-in-java.ht
我正在创建一个计划执行程序来读取 JVM 的内存使用情况。我遇到过两种在运行的 JVM 中获取内存统计信息的方法 - Runtime 和 MemoryMXBean,它们的方法之间的对应关系如下: me
我是一名优秀的程序员,十分优秀!