配置Java虚拟机内存大小

java虚拟机可使用的最大内存是有限制的,缺省值通常为64MB或128MB。如果一个应用程序为了提高性能而把数据加载内存中而占用较大的内存,比如超过了默认的最大值128MB,需要加大java虚拟机可使用的最大内存,否则会出现Out of Memory(系统内存不足)的异常。启动java时,需要使用如下两个参数:

-Xms java虚拟机初始化时使用的内存大小

-Xmx java虚拟机可以使用的最大内存

以上两个参数中设置的size,可以带单位,例如:256m表示256MB

许多底层使用Java虚拟机的(如:Tomcat),一般需要配置下面的配置项:

JAVA_OPTS=‘-Xms128m -Xmx256m‘

使用myeclipse运行main函数,通过-Xms和-Xmx配置虚拟机的内存:

配置方法:

在代码编辑区点击鼠标右键,Run As ->  Run Configurations...,在弹出的窗口中选择第二项选项卡(即Arguments),在VM Arguments文本框中输入要传入的参数如:-Xms88m -Xmx128m,最好点击Run即运行;

如果要配置程序的参数则需要在Program Arguments 文本框中输入要传入main方法的参数,最后点击下面的Run即运行。

需要注意的是,main方法的参数是一数组,如果需要多个参数,则参数之间用空格隔开,在main方法中通过数组下标的方式访问任意参数。

注意事项:

操作系统和JDK需要匹配,比如64位操作系统需要安装64位的JDK才能使用需要的内存大小,不然在jconsole中查看,heap堆的大小,最大值最大是120m。

时间: 2024-12-13 21:04:40

配置Java虚拟机内存大小的相关文章

eclipse设置java虚拟机内存大小

设置java虚拟机大小可以让eclipse启动运行更快...... 在eclipse中点击window--preferences--java--Installed JREs. 然后看右边的框,鼠标点击打钩的那一条,点击Edit, 会弹出Edit JRE , 找到default VM arguments: 向输入框中填写   -Xms128m -Xmx512m  (这样设置Java拟虚机内存使用最小是128M,最大是512M) 点击finish--ok.设置成功.

Java虚拟机内存分配详解

简介 了解Java虚拟机内存分布的好处 1.了解Java内存管理的细节,有助于程序员编写出性能更好的程序.比如,在新的线程创建时,JVM会为每个线程创建一个专属的栈 (stack),其栈是先进后出的数据结构,这种方式的特点,让程序员编程时,必须特别注意递归方法要尽量少使用,另外栈的大小也有一定的限制,如果过多 的递归,容易导致stack overflow. 2.了解Java内存管理的细节,一旦内存管理出现问题,有助于找到问题的根本原因所在. 3.了解Java内存管理的内幕,有助于优化JVM,从而

java虚拟机内存不足,“Could not create the Java Virtual Machine”问题解决方案

在运行java程序时,遇到问题"Could not create the Java Virtual Machine."如下截图: 大概原因,就是java堆内存不足以运行JVM,需要增加内存. 网上搜索此问题,大部分都是针对某个程序进行修改JVM内存的解决方法,比如eclipse,等.试问,若是其他程序出现问题了呢? 现在给出一个全局的java虚拟机修改内存的方法.在WIN XP,WIN 7,WIN8都可以. 解决方案:增加一个系统环境变量 变量名:_JAVA_OPTIONS 变量值:-

java虚拟机---内存

java虚拟机---内存 Java虚拟机,即JVM,负责运行java程序,每个java程序都运行在一个具体jvm实例上.Java虚拟机的体系架构分为:类装载子系统.运行时数据区.执行引擎.类装载子系统即负责加载.验证.解析.初始化java类的系统:Java虚拟机在运行一个程序时需要储存很多数据,如类装载信息.创建的实例对象.方法调用的参数.局部变量.中间值等,虚拟机把这些信息都储存在"运行时数据区"里,即这里讲的JVM内存:执行引擎则是以字节码形式的class文件为输入,运行程序输出计

如何设置Java虚拟机内存以适应大程序的装载

Java虚拟机对于运行时的程序所占内存是有限制的,当我们的项目或者程序很大时,往往会照成内存溢出. 举个例子: public class SmallTest1 { public static void main(String[] args) { byte[] array = new byte[1024*1024*500]; } } 当定义这样一个500MB的数组时,就会造成JVM内存溢出: 而Java虚拟机默认的程序运行能得到的内存大小是随系统的,由Java的api体系结构中,点击Java: 后

配置myeclipse虚拟机内存,避免项目初始化完成不了或者老提示虚拟机内存不够的情况

对于很大的项目,往往会占用很大的内存,这时,myeclipse可能会提示你,java虚拟机内存不够的情况: 于是,需要进行如下一些配置: 1,配置myeclipse.ini文件: 2,配置myeclipse中的tomcat下的jdk,如下图所示: 3,配置jdk的Java VM参数,如下图所示: 本来myeclipse就特别占内存,最好就是加大电脑的内存.

Java虚拟机内存管理机制

自动内存管理机制 Java虚拟机(JVM)在执行Java程序过程中会把它所管理的内存划分为若干个不同的数据区域.这些区域都有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而存在,有的区域则是依赖用户线程的启动和结束而建立和销毁.根据<Java虚拟机规范 第2版>规定,运行时数据区包括: 1.程序计数器 一块较小的内存空间,不在Ram上,而是直接划分在CPU上的,程序员无法直接操作它.当前线程所执行的字节码的行号指示器,通过改变这个计数器的值来选取下一条需要执行的字节码指令.每条

Java虚拟机内存模型及垃圾回收监控调优

Java虚拟机内存模型及垃圾回收监控调优 如果你想理解Java垃圾回收如果工作,那么理解JVM的内存模型就显的非常重要.今天我们就来看看JVM内存的各不同部分及如果监控和实现垃圾回收调优. JVM内存模型         正如你上图所看到的,JVM内存可以划分为不同的部分,广义上,JVM堆内存可以划分为两部分:年轻代和老年代(Young Generation and Old Generation) 年轻代(Young Generation) 年轻代用于存放由new所生成的对象.当年轻代空间满时,

【转】java虚拟机内存原型

本文主要通过分析Java内存分配的栈.堆以以及常量池详细的讲解了其的工作原理. 一.java虚拟机内存原型 寄存器:我们在程序中无法控制栈:存放基本类型的数据和对象的引用,但对象本身不存放在栈中,而是存放在堆中堆:存放用new产生的数据静态域:存放在对象中用static定义的静态成员常量池:存放常量非RAM存储:硬盘等永久存储空间. 二.常量池(constant pool) 常量池指的是在编译期被确定,并被保存在已编译的.class文件中的一些数据.除了包含代码中所定义的各种基本类型(如int.