我正在使用Jconsole监视Java应用程序。内存选项卡显示不同的堆和非堆内存,例如
这些术语之间有什么区别。还请提供一些有关-如何通过监视这些参数来发现应用程序行为异常的信息。
在所有基于C的语言(和大多数其他语言)中,基本上有三类存储:
堆你熟悉的。
您也很熟悉堆栈,但您只是不知道。当您具有带有“局部”变量的方法时,这些变量将在“调用框架”中分配。调用方法时分配“调用框架”,而从方法返回时将其删除,因此,最有效的方法是使用随调用而增长而随返回而收缩的“堆栈”。
静态是您没有明确分配的东西,从程序开始执行时就已经存在。
堆栈所需的空间通常很小,并与上述类别中的“非堆内存”集中在一起。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句