当前位置:  开发笔记 > 编程语言 > 正文

Java堆中的constantPoolClass?

如何解决《Java堆中的constantPoolClass?》经验,为你挑选了0个好方法。

我继承了一个Java applet(一个实际的),它在运行大约4天后抛出一个OutOfMemory异常.applet的本质是人们真的会长时间保持开放状态.

运行近两天后,jmap -histo将顶级堆消费者显示为:

    num  #instances   #bytes  class name
    ---  ----------   ------  ----------
      1:      14277  7321880  
      2:      59626  5699968  
      3:      14047  5479424  
      4:      14277  5229744  
      5:      59626  4778944  
      6:      71026  3147624  

麻烦的是,我不明白这些东西是什么.至少有两件事情发生了:constantPoolKlass + constantPoolCacheKlass + instanceKlassKlass看起来是相关的,constMethodKlass + methodKlass也是如此.从名称来看,它们似乎与类加载器相关.

如果我不得不猜测我会说applet创建了大约14,277个对象,其中每个对象有大约4种方法,总共大约59626个方法.然而,jmap输出并没有显示任何具有如此大量实例的类,也没有看起来像其他类对象的总和加起来为14277.所以也许我对这些对象的作用不正确.谁能解释一下?

推荐阅读
N个小灰流_701
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有