如何设置Java虚拟机内存以适应大程序的装载
2015-09-13 20:09
363 查看
Java虚拟机对于运行时的程序所占内存是有限制的,当我们的项目或者程序很大时,往往会照成内存溢出。
举个例子:
当定义这样一个500MB的数组时,就会造成JVM内存溢出:
而Java虚拟机默认的程序运行能得到的内存大小是随系统的,由Java的api体系结构中,点击Java:
后找到 “-Xmxn”这一项:
所以默认大小是根据系统设置的,那么我们该怎么设置最大运行内存呢?
如果是使用eclipse,那么在要进行的项目或者程序右键,选择【Run As】--->【Run Configurations...】,选择【(x)= Arguments】,在【VM arguments】中增加设置内存大小:
得到如下并设置参数:
这里我设置了800MB的内存,足够刚才的程序运行,接下来我们再来试试程序是否真的能运行而不再内存溢出:
============================================================
可以看到程序不再使Java虚拟机内存溢出,我们通过线程睡眠方式来再次验证下:
未运行程序之前的系统内存:
运行程序之后的系统内存:
===========================================
如果是通过dos命令,则在cmd窗口中键入 java -Xmx(某个数值)(内存单位) 程序名称
例如:
举个例子:
public class SmallTest1 { public static void main(String[] args) { byte[] array = new byte[1024*1024*500]; } }
当定义这样一个500MB的数组时,就会造成JVM内存溢出:
而Java虚拟机默认的程序运行能得到的内存大小是随系统的,由Java的api体系结构中,点击Java:
后找到 “-Xmxn”这一项:
所以默认大小是根据系统设置的,那么我们该怎么设置最大运行内存呢?
如果是使用eclipse,那么在要进行的项目或者程序右键,选择【Run As】--->【Run Configurations...】,选择【(x)= Arguments】,在【VM arguments】中增加设置内存大小:
得到如下并设置参数:
这里我设置了800MB的内存,足够刚才的程序运行,接下来我们再来试试程序是否真的能运行而不再内存溢出:
public class SmallTest1 { public static void main(String[] args) { byte[] array = new byte[1024*1024*500]; System.out.println("运行成功!"); } }
============================================================
可以看到程序不再使Java虚拟机内存溢出,我们通过线程睡眠方式来再次验证下:
public class SmallTest1 { public static void main(String[] args) throws InterruptedException { byte[] array = new byte[1024*1024*500]; System.out.println("运行成功!"); Thread.sleep(5000); //设置程序运行5秒,查看内存变化 } }
未运行程序之前的系统内存:
运行程序之后的系统内存:
===========================================
如果是通过dos命令,则在cmd窗口中键入 java -Xmx(某个数值)(内存单位) 程序名称
例如:
相关文章推荐
- Java初体验
- Java运行环境绿色部署配置
- java中的Random类
- 《Google Java编程风格指南》代码注释与编码规范~总结
- eclipse里面调试maven插件
- Java 加载配置文件的方式
- eclipse配置maven
- java中使用sort()对ArrayList进行排序
- java.rmi.ConnectException: Connection refused to host: 127.0.0.1
- JavaNIO:非阻塞NIO通信及相关对象讲解
- 【MyEclipse】MyEclipse使用总结——MyEclipse10安装SVN插件
- Strurts2下导入Excel文件数据
- 学习JAVA,从认识关键字开始
- java基础知识
- 1.5 Eclipse集成开发环境
- java代码
- 兔子--Spring基金会
- spring学习笔记(点滴记录)
- java学习:处理逻辑的抽象,processor
- java学习:Iterator数据加工厂