转储堆时,JVM将首先运行垃圾回收周期以释放所有无法访问的对象。
如何在不首先进行垃圾收集的情况下在Java5上进行堆转储?
以我的经验,在真正的OutOfMemoryError中,您的应用程序仅需要比可用空间更多的堆空间,此GC是一个愚蠢的事情,最终的堆转储将为最大大小。堆大小。
当堆转储小得多时,这意味着系统并不是真正的内存不足,而是可能有内存压力。例如,存在
java.lang.OutOfMemoryError: GCoverhead limit exceeded错误,这意味着JVM可能已经能够释放足够的内存来满足某些新的分配请求,但是它不得不花费太多时间来收集垃圾。
您也可能没有内存问题。是什么让您觉得自己呢?您没有提及有关堆使用或OutOfMemoryError的任何信息。您仅提到了JVM在 *** 作系统上的内存占用量。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)