gc overhead limit exceeded 解决办法和问题追究

1.服务器相关配置问题
通过修改开发坏境IDE运行参数或者线上环境启动修改配置-Xmx768m来扩大允许占用内存大小

2.程序存在相应对象无法被GC垃圾回收处理
程序部分代码BUG导致内存溢出,GC无法做出处理,我们需要借助工具来分析在哪里出现这样的问题。
JDK的jhat命令能帮助我们。
查看jhat展示的网页信息中,一般查看堆异常情况主要看这个两个部分 Show instance counts for all classes (excluding platform),平台外的所有对象信息。Show heap histogram 以树状图形式展示堆情况 

一:查看服务器上容器的进程PID

二:利用Jamp导出相关进程下的dump文件

       jmap -dump:format=b,file=dump 1963进程ID
三:  分析堆文件
      jhat test.bin
四:第三步:查看html

平台外的所有对象信息   通常占用最高的是最有可能出现的地方。
五 :分析代码中对象的创建和使用

你可能感兴趣的:(java,常见问题)