草庐IT

MemoryMXBean

全部标签

java - 如何确定 Java 应用程序中 PermGen 的大小(即以编程方式)?

有什么方法可以测量我的Java应用程序中当前使用的永久代(PermGen)大小?我无法使用VisualVM等外部分析工具。更好的方法是估算PermGen中Java类的内存消耗。它几乎与字节码文件的大小成正比吗? 最佳答案 您可以使用JDK附带的MemoryMXBean。但我认为没有办法从正在运行的应用程序中查询permgen的使用情况。关于MemoryMXBean的文档. 关于java-如何确定Java应用程序中PermGen的大小(即以编程方式)?,我们在StackOverflow上找

java - 在 Java 中获取内存统计信息 : Runtime vs. MemoryMXBean

我正在创建一个计划执行程序来读取JVM的内存使用情况。我遇到过两种在运行的JVM中获取内存统计信息的方法-Runtime和MemoryMXBean,它们的方法之间的对应关系如下:memoryMxBean.getHeapMemoryUsage().getUsed()runtime.totalMemory()-runtime.freeMemory()memoryMxBean.getHeapMemoryUsage().getCommitted()runtime.totalMemory()memoryMxBean.getHeapMemoryUsage().getMax()runtime.max

java - Java中内存不足的通知

Java中是否有任何提供的功能来通知应用程序中的内存不足(或通知它已达到预定义的级别)?我想知道是否可以在某处注册一个监听器(或类似的东西)?我知道Runtime类中的内存方法。我可以自己创建一个检查剩余内存的计划任务,但我想知道是否已经有现有的解决方案。我不这么认为,但我正在寻找确认。供记录MemoryMXBeanmbean=ManagementFactory.getMemoryMXBean();NotificationEmitteremitter=(NotificationEmitter)mbean;NotificationListenerlistener=newNotificat

java - Java中内存不足的通知

Java中是否有任何提供的功能来通知应用程序中的内存不足(或通知它已达到预定义的级别)?我想知道是否可以在某处注册一个监听器(或类似的东西)?我知道Runtime类中的内存方法。我可以自己创建一个检查剩余内存的计划任务,但我想知道是否已经有现有的解决方案。我不这么认为,但我正在寻找确认。供记录MemoryMXBeanmbean=ManagementFactory.getMemoryMXBean();NotificationEmitteremitter=(NotificationEmitter)mbean;NotificationListenerlistener=newNotificat

Java 进程的内存无限增长,但 MemoryMXBean 报告稳定堆和非堆大小

我正在与一个开发在1GBLinux目标系统上运行的JavaGUI应用程序的团队合作。我们的java进程使用的内存会无限增长,直到Linux最终杀死java进程。我们的堆内存是健康且稳定的。(我们已经广泛地分析了我们的堆)我们还使用MemoryMXBean来监视应用程序的非堆内存使用情况,因为我们认为问题可能出在那儿。但是,我们看到的是报告的堆大小+报告的非堆大小保持稳定。下面是一个示例,说明在我们的目标系统上运行应用程序时,具有1GBRAM(MemoryMXBean报告的堆和非堆,使用Linux的top命令(驻留内存)监控的Java进程使用的总内存)上的数字可能看起来如何:启动时:已提