gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 09:58:33 24 4
gpt4 key购买 nike

我需要使用 定期收集 JVM 的统计信息。稍后,我需要记录 JVM 可用内存/空闲内存、已用内存、总内存。

以下是我想到的两个方案。

  1. ManagementFactory.getMemoryPoolMXBeans() 并遍历每个 MemoryPoolMXBean,最后使用 MemoryPoolMXBean.getUsage() 收集统计数据。

  2. Runtime.freeMemory(), Runtime.maxMemory(), Runtime.totalMemory

这是收集统计信息的最佳方式。使用 MemoryPoolMXBean.getUsage() 或运行时类。

最佳答案

这是关于在整个应用程序生命周期中监听您的内存使用情况,而不是在您的应用程序中的各个地方查找信息。

Memory notifications in Java 中所述,您可以通过交互式方式来监控内存,因为您可以将通知监听器添加到您的MemoryMXBean

因此对于非常准时的本地检查,运行时可能就足够了,对于全局监控,MemoryMXBeans 是可行的方法。

关于java - MemoryPoolMXBean.getUsage() 相对于 Runtime.freeMemory() 的优势,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/852352/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com