在Java中有什么方法可以让我们访问当前的内存状态,比如JVM 当前使用了多少终身内存或年轻代内存。
执行 Runtime.getRuntime().freeMemory(), totalMemory() 很有用,但我想知道是否有任何方法可以拆分总内存。
在Java中有什么方法可以让我们访问当前的内存状态,比如JVM 当前使用了多少终身内存或年轻代内存。
执行 Runtime.getRuntime().freeMemory(), totalMemory() 很有用,但我想知道是否有任何方法可以拆分总内存。
可以在以下链接中找到这些
尝试-XX:-PrintGC
和详细信息http://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.html-XX:-PrintGCDetails;
此链接包含与统计相关的更多信息 http://docs.oracle.com/javase/1.5.0/docs/tooldocs/share/jstat.html
GC 日志记录是监控 Young 和 OldGen 占用的最佳方式。
并且,jstat
是另一种监控堆大小的好方法,除了 GC 日志将向您显示的内容之外,jstat 将向您显示Eden和Survivor空间占用,请尝试:
jstat -gcutil -t <pid> <interval> <number_of_samples>
Manage Engine 的应用程序管理器完成这项工作。神奇的工具 http://www.manageengine.com/products/applications_manager/