我最近从Java7迁移到了Java8。这引起了一个问题,几个小时后我得到了OutOfMemoryException,因为GC不能释放任何内存。此外,“最后的沟集”不能将Metaspace的大小调整到任何更大的范围。
我确信这是一个由反射加载大量类引起的问题。不幸的是,我无法找到一种方法来查看正在加载哪些类。有办法从堆转储中提取这些信息吗?
发布于 2016-01-30 07:02:23
你可以通过
-verbose:class到JVM以打印正在加载的类。
发布于 2016-05-04 23:23:39
您需要使用JDK附带的(jmc.exe)来记录应用程序上的事件。如下所示: 1.从bin目录2启动jmc.exe。开始录制。如果要录制全部或时间限制,则选中此复选框。3.倒掉录音。4.调试愉快。
具体来说,您可以转到内存选项卡( Memory )选项卡->分配->分配--这给出了加载的类以及它们的加载位置。
调试愉快。
https://stackoverflow.com/questions/35087312
复制相似问题