GC overhead limit exceede
时间: 2023-09-25 10:07:02 浏览: 147
"GC overhead limit exceeded"是指JVM垃圾收集一直在运行导致应用运行缓慢。当垃圾收集花费大约超过98%的时间来进行垃圾收集,并且无法恢复2%以上的堆内存时,就会抛出java.lang.OutOfMemoryError异常。通常情况下,这是由于大量运行时数据被强行填充到堆内存中所导致的。
在处理大量数据时,特别是使用poi库进行读取操作时,可能会导致GC内存溢出的错误。这是因为垃圾回收机制无法及时回收大量的对象,这些对象会一直保存在内存中,导致内存不足的情况发生。解决这个问题的一种方法是将大量数据读取为csv格式,这样可以减少内存的使用。这种解决方案可以支持处理千万条数据。
如果遇到GC overhead limit exceeded的问题,可以使用jmap命令导出Dump文件,并使用MAT工具进行分析。通过jps命令可以获取相应的进程ID。导出的Dump文件可能会比较大,所以要确保指定的目录有足够的空余磁盘空间来存储。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *3* [GC overhead limit exceeded](https://blog.csdn.net/shy_snow/article/details/89394148)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
- *2* [poi大量数据读取gc内存溢出解决方案](https://download.csdn.net/download/qq_42291569/12408100)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
阅读全文