gpt4 book ai didi

java - 我们如何获得有关堆栈空间和 PermGen 空间的内存信息?

转载 作者:塔克拉玛干 更新时间:2023-11-02 18:59:44 25 4
gpt4 key购买 nike

大家好,我想知道我们如何获得每个堆栈分配的内存大小(例如 -Xss512k),

以及分配给 PermGen 空间的内存大小(例如 XX:MaxPermSize=256m)?

我看过了

  1. java.lang.Runtime.totalMemory

  2. java.lang.Runtime.freeMemory

  3. java.lang.Runtime.maxMemory

但是函数只返回关于堆空间的信息。

我们如何查询栈空间和PermGen空间的信息?

最佳答案

您的旅程始于 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 的参数。

关于java - 我们如何获得有关堆栈空间和 PermGen 空间的内存信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8543887/

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