内存溢出的原因及解决方法
内存溢出的原因是如何解决容量内存溢出问题。我们在这里学习。萧边将与你分享和内存溢出问题的原因。欢迎大家参考学习。具体故障如下图所示。
内存溢出的原因及解决方案
内存溢出的原因有很多种。
1。在内存中加载的数据量太大,例如一次从数据库中获取太多的数据。
在2中有一个对象的引用。设置类,在使用后未清除,因此无法恢复JVM。
三.有一个对象实体,其中一个死循环或循环产生太多的重复。
4。使用的第三方软件中的bug。
5。启动参数的内存值设置太小。
内存溢出的解决方案:
第一步是修改JVM启动参数和增加内存直接。(论坛、Xmx参数不能被遗忘。)
第二步,检查错误日志,查看outofmemory是否有其他异常或错误在错误。
第三步是检查和分析代码,找出内存溢出的可能位置。
关注以下几点:
1。检查是否有查询来获取数据库查询中的所有数据。一般来说,如果十万个条目同时记录在内存中,可能会造成内存溢出。这个问题更为微妙。在数据库上线之前,数据比较少,而且不容易得到问题。联机时,数据库中有更多的数据。一旦发生查询,可能会导致内存溢出。因此,数据库查询以分页方式进行查询。
2。检查代码中是否存在死循环或递归调用。
三.检查是否有一个大循环重复新对象实体。
4。检查是否有查询来获取数据库查询中的所有数据。一般来说,如果十万个条目同时记录在内存中,可能会造成内存溢出。这个问题更为微妙。在数据库上线之前,数据比较少,而且不容易得到问题。联机时,数据库中有更多的数据。一旦发生查询,可能会导致内存溢出。因此,数据库查询以分页方式进行查询。
5。检查列表、map和其他收集对象在使用后是否没有被清除,如列表、map等集合对象将始终引用对象,以便通过GC无法恢复这些对象。
第四步,使用内存视图工具动态查看内存使用情况