用jmap查找当前的堆大小

用jmap查找当前的堆大小,第1张

概述用jmap查找当前的堆大小

我想知道一个Java进程在某个特定时间使用的总堆大小,我必须使用jmap。

jmap -heap <pID>的输出给了我这样的东西:

附加到进程ID 2899,请稍候...

deBUGging器成功连接。

检测到服务器编译

JVM版本是14.2-b01

使用线程局部对象分配。

2线程并行GC

堆configuration:

MinHeapFreeRatio = 40

MaxHeapFreeRatio = 70

MaxHeapSize = 1258291200(1200.0MB)

NewSize = 1048576(1.0MB)

MaxNewSize = 4294901760(4095.9375MB)

oldSize = 4194304(4.0MB)

NewRatio = 8

SurvivorRatio = 8

PermSize = 16777216(16.0MB)

MaxPermSize = 67108864(64.0MB)

堆用法:

PS年轻一代

伊甸园空间:

容量= 119013376(113.5MB)

used = 117277608(111.84464263916016MB)

免费= 1735768(1.6553573608398438MB)

使用98.54153536489882%

从空间:

容量= 131072(0.125MB)

used = 81920(0.078125MB)

免费= 49152(0.046875MB)

62.5%使用

到太空:

容量= 131072(0.125MB)

used = 0(0.0MB)

免费= 131072(0.125MB)

0.0%使用

PS老一代

容量= 954466304(910.25MB)

used = 80791792(77.04905700683594MB)

免费= 873674512(833.2009429931641MB)

使用了8.46460390077846%

PS烫发一代

容量= 57671680(55.0MB)

used = 41699008(39.76727294921875MB)

免费= 15972672(15.23272705078125MB)

使用72.30413263494319%

我可以使用这些值的公式来找出使用的总内存?

关于如何在linux上发现这个问题的其他build议值得欢迎,但jmap优先于它们。

如何使用windows cmd获得全部物理内存?

在windows上检测进程内存注入(防黑客)

移动内存页面比mremap()更快的方法?

CUDA内存错误

内存映射文件可选写入可能吗?

谢谢

从用户空间连续的物理内存

VirtualAlloc失败

linux:手动减less堆大小

从正在运行的Java程序的内存中查找并读取特定types的对象

在两个进程(C,windows)之间共享内存

如果你想比较像jconsole或jvisualvm与主窗口显示“总堆使用情况”我发现通过添加“使用的伊甸园空间”和“使用PS老一代空间”我得到了相同的图表显示在上述的程序中 – 这是我现在倾向于去做的

“ Heap Usage: ”下的条目列出了JVM中的各种分区内存池以及最大大小,已用空间和可用空间。 您可以将所used:的各种值加起来,这些值应该为总的内存使用情况提供一个合理的值,尽管在列出的池中可能存在一些JVM开销。

总结

以上是内存溢出为你收集整理的用jmap查找当前的堆大小全部内容,希望文章能够帮你解决用jmap查找当前的堆大小所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1157567.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存