我们的代码使用-XX:+ HeapDumpOnOutOfMemoryError标志运行,因此我们在OOM上获得了一个hprof文件。 最近我从安装中得到了这样一个文件,我用Eclipse内存分析器(MAT)打开它,我可以看到总大小是46MB,如果进程是用-Xmx1024m启动的话怎么样?
大小不应该更接近最大分配大小吗?
这是jdk1.6。
编辑:好了,我发现similar question确实存在PermGen空间问题,因为我的过程已经持续了23天。我经常创建新的线程(据我所知正确结束),每秒一次。有谁知道我能否以某种方式证实这一点?
答案 0 :(得分:1)
如果您无法创建非常大的对象,则会发生这种情况。即您无法创建的对象不在转储中。