这个问题主要由这个问题Java.lang.out of memory error : javaheapspace引起。 这种问题首次发生后,引起了其他问题。 在网上查的话,可能是因为JAVA的堆栈设定太小。
根据网上的回答,大致有两种解决方法。
1、设置环境变量
解决方法:手动设置帮助大小
修改TOMCAT_HOME/无奈的舞蹈/catalina.sh
set JAVA_OPTS=-Xms32m -Xmx512m
可以根据自己机器的内存进行变更。
2、java -Xms32m -Xmx800m className
就是在运行JAVA类文件时添加此参数。 其中className是必须运行的类名。 (包括包名)
这解决了问题。 而且执行速度比没有设置时快得多。
如果在测试过程中可能使用Eclispe,则必须在Eclipse -run -arguments的VM arguments中输入参数-Xms32m -Xmx800m。
然后,在Eclilpse中修改了启动参数,在VM arguments中添加了-Xms32m -Xmx800m,解决了问题。
一. Java.lang.out of memory error : permgenspace
PermGen space的全名是Permanent Generation space,是内存的永久存储空间。
此内存主要存储在JVM中的类和元信息,类加载后存储在PermGen space中。
与包含类实例(Instance )的Heap区域不同,GC (garbage collection )在主程序运行时不是一对
由于PermGen space是清理的,因此如果APP应用程序中有很多类,则很可能会发生PermGen space错误
web服务器预完成JSP时,这种错误很常见。 如果在你的web APP下使用很多第三方jar,那么它的大小是
如果超出了jvm的默认大小(4M ),则会收到此错误消息。
解决方法:手动设置最大大小
修改TOMCAT_HOME/无奈的舞蹈/catalina.sh
在echo ' using catalina _ base : $ catalina _ base '上添加以下行:
Java _ opts='-server-xx : permsize=64m-xx : maxperm size=128 m
建议:将同一第三方jar文件移动到tomcat/shared/lib目录中可以减少jar文档的重复内存使用量。
二. Java.lang.out of memory error : javaheapspace
Heap size设置
JVM堆设置是允许您调配JVM在运行java程序时使用的内存空间的设置。 JVM在启动时自动设置Heap size的值。
初始空间-Xms是物理内存的1/64,最大空间-Xmx是物理内存的1/4。 利用JVM提供的-Xmn -Xms -Xmx等选项
点击Heap size的大小为Young Generation和Tenured Generaion之和。
提示:如果GC使用98%的时间,而可用的Heap size小于2%,JVM将抛出此异常消息。
提示: Heap Size最多不能超过可用物理内存的80%。 通常将-Xms和-Xmx选项设置为相同,-Xmn为1/4的-Xmx值。
解决方法:手动设置帮助大小
修改TOMCAT_HOME/无奈的舞蹈/catalina.sh
在echo ' using catalina _ base : $ catalina _ base '上添加以下行:
Java _ opts='-server-xms 800 m-XM x800 m-xx : max new size=256 m '
三.实例,以下为1G内存环境下java jvm参数设置参考。
jva _ opts='-server-xms 800 m-XM x800 m-xx : permsize=64m-xx 3360 max new size=256 m-xx 3360 maxperm size=128 m-1
在大型web项目中,tomcat默认分配的内存空间无法启动。 如果不希望myeclipse启动tomcat,则可以在tomcat中设置以下内容:
在TOMCAT_HOME/无奈的舞蹈/catalina.bat中添加这样的话:
set Java _ opts=-xmx 1024 m-xms 512 m-xx : maxperm size=256 m
以myeclipse启动后,上述更改将不起作用。 可以设置如下:
>Myeclipse->preferences->myeclipse->servers->tomcat->tomcat×.×->JDK面板中的
Optional Java VM arguments中添加:-Xmx1024M -Xms512M -XX:MaxPermSize=256m
以上是转贴,但本人遇见的问题是:在myeclipse中启动Tomcat时,提示"ava.lang.OutOfMemoryError: Java heap space",解决办法就是:
Myeclipse->preferences->myeclipse->servers->tomcat->tomcat×.×->JDK面板中的
Optional Java VM arguments中添加:-Xmx1024M -Xms512M -XX:MaxPermSize=256m
挺灵的。
Java VM(虚拟机) 参数
-XX:PermSize/-XX:MaxPermSize,永久代内存: 1. 虚拟机参数:-ea,支持 assert 断言关键字 eclipse 默认是不开启此参数的,也就是虽然编译器支持 asser ...
一个在 Java VM 上使用可观测的序列来组成异步的、基于事件的程序的库 RxJava,相当好
https://github.com/ReactiveX/RxJava https://github.com/ReactiveX/RxAndroid RX (Reactive Extensions,响 ...
获取Java VM中当前运行的所有线程
/** * 获取Java VM中当前运行的所有线程 * @return */ public static Thread[] findAllThreads() { ThreadGroup group = ...
WLST Hangs Up Because of Java VM ClassLoader Deadlock
APPLIES TO: Oracle WebLogic Server - Version 10.0 to 10.3.6Information in this document applies to a ...
Javascript Engine, Java VM, Python interpreter, PyPy – a glance
提要: url anchor (ajax) => javascript engine (1~4 articles) => java VM vs. python interpreter =& ...
【三】Java VM 发展史
1. Sun Classic VM jdk1.0 第一款商用虚拟机. 只能使用纯解释器来运行Java代码.没有自己的判断,会把每一个方法每一行代码都编译,效率不好.导致大家普遍认为Java代码运行 ...
Error: Java VM internal error:Error Loading javai.dll
因为前几天的JMS测试,第一次写了loadrunner的脚本,感觉路一下子宽了. 知道loadrunner可以使用java写脚本,今天就试了一下,遇到了两个第一次写Java Vuser脚本普遍都会遇到 ...
jboss启动时java VM参数设置
jboss服务器中jvm参数的设置: 在$JBOSS_HOME/无奈的舞蹈下的run.sh里面存在这么一个设置: # Force IPv4 on Linux systems since IPv6 does ...
随机推荐
php工作笔记7-概率算法
a/m b/m c/m d/m 10% 40% 20% a+b+c+d+... < = m array k = {a,b,c...} randt = rand(1 ...
炫酷的jquery瀑布流
最近做了一个瀑布流效果,思路很简单 首先计算屏幕一行可以放多少个图片,然后在第二行开始,计算每一列的高度并取出最小值,将新图片加载在最小列高度下,如此循环,并且设定一个条件,当滑动到一定距离后,开始重 ...
FoxMail的Bug
Foxmail 7.2 build6.040,win7中文专业版 下载腾讯的企业邮箱的邮件, 自动配置为imap收邮件 收件箱应该为1740封 邮件 实际foxmail却只收到1500多封 改成pop ...
Rainyday.js – 傻眼了!竟然有如此逼真的雨滴效果
Rainyday.js 是一个轻量的 JavaScript 库,利用 HTML5 Canvas 实现雨滴下落在玻璃表面的动画效果.Rainyday.js 尽可能的模拟现实的雨滴效果,几乎可以以假乱真了 ...
7-Highcharts曲线图之分辨带
7-Highcharts曲线图之分辨带 ...PHP学习笔记05——面向对象
I.MX6 Power off register hacking
/*********************************************************************** * I.MX6 Power off register ...
浅淡Windows7 32位与64位/x86与x64的区别
看到有很多会员问到底是选Windows7 x86,还是选x64.这里简单的谈一下这这两种系统的区别. 简单的说x86代表32位操作系统 x64代表64位操作系统. 简单的判断电脑是否支持64位操作系 ...
[SOJ] DAG?
Description 输入一个有向图,判断该图是否是有向无环图(Directed Acyclic Graph). Input 输入的第一行包含两个整数n和m,n是图的顶点数,m是边数.1<=n ...
python3之MongoDB
1.MongoDB简介 MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统. 在高负载的情况下,添加更多的节点,可以保证服务器性能. MongoDB 旨在为WEB应用提供可 ...