大家好,我想知道如何获得每个堆栈分配的内存大小(例如-Xss512k),
和分配给PermGen空间的内存大小(例如XX:MaxPermSize = 256m)?
我已经调查了
但函数只返回有关堆空间的信息。
我们如何查询有关堆栈空间和PermGen空间的信息?
答案 0 :(得分:3)
您的旅程从MemoryManagerMXBean开始,在那里您可以找到所有内存池;之后,请MemoryPoolMXBean查找有关给定池的详细信息。
最简单的方法是,
List<MemoryPoolMXBean> memoryPoolMXBeans =
ManagementFactory.getMemoryPoolMXBeans();
for (MemoryPoolMXBean pool: memoryPoolMXBeans) {
out.println("pool: " + pool.getName());
out.println(" type: " + pool.getType());
out.println(" usage: " + pool.getUsage());
out.println();
}
另外,看看How to determine the maximum stack size limit? - 他们有办法将参数传递给JVM。