案例(1)-- OOM异常

问题描述:

  1、系统在执行某个操作时,必现OOM异常。

问题的定位:

  1、排查代码,未发现问题。

  2、在虚拟机启动时,添加参数:-XX:+HeapDumpOnOutOfMemoryError(当发生oom异常时,生成dump文件),得到异常时的dump文件。

  3、使用 jvisualvm 分析dump文件。发现某个pojo存在很多个实例对象,再定位到具体抛出异常的地方,发现是在获取数据库数据时,没有使用分页参数,导致 select * from tableName 这样的低级错误发生。

问题的解决:

  显而易见。

由该案例得到的总结:

  1、由于开发人员的不规范编码,导致的问题。

    比如说:变量的命名问题,变量名称应该顾名思义。

    因此:强制推行全员使用《阿里java开发规范》进行代码的检查与开发。

原文地址:https://www.cnblogs.com/chen--biao/p/11350740.html