gpt4 book ai didi

java - 在任务管理器和探查器中监视java应用程序内存,哪个是正确的?

转载 作者:行者123 更新时间:2023-12-01 16:43:02 26 4
gpt4 key购买 nike

我正在监视从 Netbeans 运行的应用程序的内存使用情况。我对两个不同的结果有点困惑。

任务管理器给我一个值,而 Netbeans 中的分析器指示不同的值。

例如,下面的任务管理器屏幕截图显示应用程序的内存使用量为 2,927.3 MB enter image description here

但是探查器显示了这一点(看右上图): enter image description here总堆大小超过 3GB,但使用的堆看起来略低于 2GB。

所以对我来说,探查器和任务管理器之间的值不匹配。

哪一项更准确地表示应用程序的内存使用情况?

最佳答案

这是因为,至少据我所知,Java 进程消耗的内存由两个段组成。

,就是每次代码执行CExample exam = new CExample();这样的语句时分配对象的段

非堆,这是您可以找到每个线程堆栈和元数据类的部分,过去称为永久代,目前称为元空间。据我所知,非堆还包含Just In Time编译器生成的 native 代码,以提高应用程序的性能。

我认为您可以检查这些链接以获取有关堆和非堆段的更多见解。

https://betsol.com/java-memory-management-for-java-virtual-machine-jvm/

https://docs.oracle.com/javase/8/docs/api/java/lang/management/MemoryMXBean.html

关于java - 在任务管理器和探查器中监视java应用程序内存,哪个是正确的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61822705/

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