Java heap space,Java应用程序创建的对象存放在这片区域,垃圾回收也发生在这块区域。通常一些比较“重型”的操作可能会导致该异常,比如:需要创建大量的兑现个,层次比较深的递归操作等。
解决方案有两种,一是优化应用,找到消耗大量内存的地方,然后优化代码或者算法。这种方式比较推荐,但是难度比较大,尤其是在产品环境中出现这种问题,开发人员不能很好的重现问题。第二种方案是提升Java heap size,这种方式虽然感觉有点治标不治本,但是可行性非常高,操作简单。
对于一般的应用,采用如下方式即可(数字根据自己的需要调整):
1 -Xms<size> - Set initial Java heap size 2 -Xmx<size> - Set maximum Java heap size 3 4 java -Xms512m -Xmx1024m JavaApp
如果是在tomcat中,出现的这种问题,解决办法是在{tomcat_dir}/bin/catalina.bat中找到如下几行:
1 set MAINCLASS=org.apache.catalina.startup.Bootstrap 2 set ACTION=start 3 set SECURITY_POLICY_FILE= 4 set DEBUG_OPTS= 5 set JPDA=
在后面加上一行(数字根据自己的需要调整):
1 set CATALINA_OPTS=-Xms512m -Xmx512m