java--程序运行时出现内存溢出
2014-05-07 17:42
155 查看
今天在使用程序统计数据时,出现内存溢出,下面是转载的一片关于如何设置jvm的博文。
http://blog.csdn.net/wgw335363240/article/details/6397803
从上边的异常信息可以看到,JVM 需要使用的内存已经超过了我们分配给虚拟机可以使用的最大内存。所以问题就转化为如何设置eclipse 中jvm 的最大内存。
一、 尝试修改Eclipse.ini 文件 (此方法不行)
找到eclipse 目录下的eclipse.ini 文件,修改下面的内容:
二、 修改jdk 使用内存(此方法可行)
修改后重启eclipse ,发现根本不起作用。经过后来查阅一些资料,原来这里设置的最小内存和最大内存是不是给JVM 使用的,这个内存值包含了eclipse 自身使用的内存。
找到eclispe 中window->preferences->Java->Installed JRE ,点击右侧的Edit 按钮,在编辑界面中的 “Default VM Arguments ”选项中,填入如下值即可。
三、 修改Run Configurations (此方法可行)
在代码上右键,依次点击“Run As ”-> “Run Configurations ”,在Arguments 参数中的“VM arguments: ”中填入如下值即可。
四、 查询当前JVM 内存代码
下面是查询当前JVM 内存大小的代码,可以测试以上设置后JVM 的内存是否会变化。增加JVM 内存的配置项后,无需重新启动eclipse 。具体的代码如下:
http://blog.csdn.net/wgw335363240/article/details/6397803
java.lang.OutOfMemoryError: Java heap space
从上边的异常信息可以看到,JVM 需要使用的内存已经超过了我们分配给虚拟机可以使用的最大内存。所以问题就转化为如何设置eclipse 中jvm 的最大内存。
一、 尝试修改Eclipse.ini 文件 (此方法不行)
找到eclipse 目录下的eclipse.ini 文件,修改下面的内容:
-Xms40m -Xmx512m
二、 修改jdk 使用内存(此方法可行)
修改后重启eclipse ,发现根本不起作用。经过后来查阅一些资料,原来这里设置的最小内存和最大内存是不是给JVM 使用的,这个内存值包含了eclipse 自身使用的内存。
找到eclispe 中window->preferences->Java->Installed JRE ,点击右侧的Edit 按钮,在编辑界面中的 “Default VM Arguments ”选项中,填入如下值即可。
-Xms64m -Xmx128m
三、 修改Run Configurations (此方法可行)
在代码上右键,依次点击“Run As ”-> “Run Configurations ”,在Arguments 参数中的“VM arguments: ”中填入如下值即可。
-Xms64m -Xmx128m
四、 查询当前JVM 内存代码
下面是查询当前JVM 内存大小的代码,可以测试以上设置后JVM 的内存是否会变化。增加JVM 内存的配置项后,无需重新启动eclipse 。具体的代码如下:
public class TestMemory { /** * @param args */ public static void main(String[] args) { System. out .println( " 内存信息 :" + toMemoryInfo ()); } /** * 获取当前 jvm 的内存信息 * * @return */ public static String toMemoryInfo() { Runtime currRuntime = Runtime.getRuntime (); int nFreeMemory = ( int ) (currRuntime.freeMemory() / 1024 / 1024); int nTotalMemory = ( int ) (currRuntime.totalMemory() / 1024 / 1024); return nFreeMemory + "M/" + nTotalMemory + "M(free/total)" ; } }
相关文章推荐
- cmd命令行下运行Java程序出现“找不到或无法加载主类”的错误
- Java 命令行运行java程序,出现“找不到或无法加载主类 ”的解决办法
- 网页上运行java小程序时出现“应用程序已被安全设置阻止”的解决方法
- 不小心把JRE System Library中的某些Jar包删除了,运行Java程序提示找不到类,并且在项目的头上出现红色的感叹号
- 关于eclipse运行java程序内存溢出的解决方法
- 使用idea编辑sparkSql的程序运行出现java.lang.IllegalArgumentException: java.net.URISyntaxException
- 编译运行java程序出现Exception in thread "main" java.lang.UnsupportedClassVersionError: M : Unsupported major.minor version 51.0
- 运行在Linux系统上的Java程序可能会出现"Too many open files"
- Mac上IntelliJ Idea运行Java程序时出现红色的警告解决办法-亲测有效
- [置顶] 关于cmd运行java程序出现乱码情况解决办法
- 运行java程序的时候出现Exception in thread "main" java.lang.UnsupportedClassVersionError:
- java运行时出现内存溢出怎么办
- eclipse中运行Java Application出现内存溢出
- java程序运行时出现问题:Could not find the main class: test_jena. Program will exit.
- cocos2d在运行java eclipse程序时出现 Error: could not open c:\program Files\Java\jre6\lib\amd64\jvm.cfg
- hadoop1.0.4运行程序出现“Java heap Space”错误
- android 程序运行出现 java.lang.NoClassDefFoundError的原因与解决方法之一
- Eclipse运行程序时出现问题之-Unable to execute dex: java.nio.BufferOverflowException. Check the Eclipse log
- 关于java实现的mapreduce程序打包后通过脚本运行出现classnotfound异常
- 用记事本编写第一个Java程序运行时 出现报错:错误: 类helloworld是公共的, 应在名为 helloworld.java 的文件中声明 public class helloworld {