java 查看java虚拟机内存存怎么设置最好

在tomcat6/bin目录下的catalina.bat文件加上如下一行代码:
JAVA_OPTS=&-server -XX:PermSize=800M -XX:MaxPermSize=1500M&
java虚拟机可使用的最大内存是有限制的,缺省值通常为64MB或128MB。
假如一个应用程序为了提高性能而把数据加载内存中而占用较大的内存,比如超过了默认的最大&#MB,需要加大java虚拟机可使用的最大内存,否则会出现Out of Memory(系统内存不足)的异常。启动java时,需要使用如下两个参数:
-Xms java虚拟机初始化时使用的内存大小
-Xmx java虚拟机可以使用的最大内存
以上两个参数中设置的size,可以带单位,例如:256m表示256MB
举例说明:
java -Xms128m -Xmx256m ...
表示java虚拟机初始化时使用的内存为128MB,可使用的最大内存为256MB。
对于tomcat,可以修改其脚本catalina.sh(unix平台)或catalina.bat(windows平台),设置变量JAVA_OPTS即可,例如:
JAVA_OPTS='-Xms128m -Xmx256m'&
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:526047次
积分:11126
积分:11126
排名:第1075名
原创:571篇
评论:144条
阅读:15977
阅读:8394
文章:22篇
阅读:18128
阅读:1178
文章:22篇
阅读:25008
文章:62篇
阅读:56838
文章:15篇
阅读:15490
文章:42篇
阅读:59629
文章:135篇
阅读:132539
文章:81篇
阅读:65216
文章:110篇
阅读:69852
(5)(14)(12)(18)(19)(18)(11)(9)(23)(19)(12)(5)(8)(6)(22)(21)(41)(39)(49)(50)(72)(11)(20)(7)(4)(8)(15)(11)(2)(1)(3)(7)(15)博客访问: 1453969
博文数量: 586
博客积分: 11457
博客等级: 上将
技术积分: 5963
注册时间:
IT168企业级官微
微信号:IT168qiye
系统架构师大会
微信号:SACC2013
分类: Java
JVM虚拟机的默认内存使用大小为64MB,也就是你不更改的话,他的JVM内存使用大小就是64MB,如果超出这个内存使用限度,就会报java head space错误。
下面贴上代码:
package com.bird.xml;
public class ChangeJVM {
&&&&public static void main(String[] args) {
&&&& byte[] b=new byte[1024*1024*400];
他的作用是开启2000MB也就是2G的内存作为使用空间,JVM当然不干,他会报错。
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
&&&&at com.bird.xml.ChangeJVM.main(ChangeJVM.java:5)
阅读(2134) | 评论(0) | 转发(0) |
相关热门文章
给主人留下些什么吧!~~
请登录后评论。和相应的机制去控制。System.gc();只是调用了。告诉虚拟机你可以去释放垃圾了。但是不会马上执行,虚拟机会根据自己内部机制和算法去。所以最好不要System.gc();
您的举报已经提交成功,我们将尽快处理,谢谢!
可以的 1. 前提是你的机器root过,且带有 Root Explorer或者 EStrongs 等有超级用户权限的文件管理器。
2. 把下载后的压缩文件解压到...
Eclipse是Java开发的,所以运行需要Java运行环境。
建议你百度一下: JDK安装
网上有很多资料。
还有要说的就是JDK的环境变量配置...
1、保持大便通畅,
2、用热水烫洗局部.
3、服用地榆槐角丸
4、局部使用痔疮栓
5、注意休息防止劳累
6、保持心情舒畅坚持下去必有好处.
大家还关注您所在的位置: &
Java虚拟机(JVM)中的内存设置详解
Java虚拟机(JVM)中的内存设置详解
本文向您介绍在Java虚拟机,即JVM中如何设置内存,达到良好的GC效率。
在一些规模稍大的应用中,Java虚拟机(JVM)的内存设置尤为重要,想在项目中取得好的效率,GC(垃圾回收)的设置是第一步。
PermGen space:全称是Permanent Generation space.就是说是永久保存的区域,用于存放Class和Meta信息,Class在被Load的时候被放入该区域Heap space:存放Instance。
GC(Garbage Collection)应该不会对PermGen space进行清理,所以如果你的APP会LOAD很多CLASS的话,就很可能出现PermGen space错误
Java Heap分为3个区1.Young2.Old3.Permanent
Young保存刚实例化的对象。当该区被填满时,GC会将对象移到Old区。Permanent区则负责保存反射对象,本文不讨论该区。
JVM的Heap分配可以使用-X参数设定,
-Xms 初始Heap大小-Xmx java heap最大值&
-Xmn young generation的heap大小
JVM有2个GC线程第一个线程负责回收Heap的Young区第二个线程在Heap不足时,遍历Heap,将Young 区升级为Older区Older区的大小等于-Xmx减去-Xmn,不能将-Xms的值设的过大,因为第二个线程被迫运行会降低JVM的性能。为什么一些程序频繁发生GC?
有如下原因:1.程序内调用了System.gc()或Runtime.gc()。2.一些中间件软件调用自己的GC方法,此时需要设置参数禁止这些GC。3.Java的Heap太小,一般默认的Heap值都很小。4.频繁实例化对象,Release对象 此时尽量保存并重用对象,例如使用StringBuffer()和String()。
如果你发现每次GC后,Heap的剩余空间会是总空间的50%,这表示你的Heap处于健康状态,许多Server端的Java程序每次GC后最好能有65%的剩余空间
经验之谈:
1.Server端JVM最好将-Xms和-Xmx设为相同值。为了优化GC,最好让-Xmn值约等于-Xmx的1/3。2.一个GUI程序最好是每10到20秒间运行一次GC,每次在半秒之内完成。
1.增加Heap的大小虽然会降低GC的频率,但也增加了每次GC的时间。并且GC运行时,所有的用户线程将暂停,也就是GC期间,Java应用程序不做任何工作。2.Heap大小并不决定进程的内存使用量。进程的内存使用量要大于-Xmx定义的值,因为Java为其他任务分配内存,例如每个线程的Stack等。
Stack的设定每个线程都有他自己的Stack。
-Xss 每个线程的Stack大小
Stack的大小限制着线程的数量。如果Stack过大就好导致内存溢漏。-Xss参数决定Stack大小,例如-Xss1024K。如果Stack太小,也会导致Stack溢漏。
硬件环境也影响GC的效率,例如机器的种类,内存,swap空间,和CPU的数量。如果你的程序需要频繁创建很多transient对象,会导致JVM频繁GC。这种情况你可以增加机器的内存,来减少Swap空间的使用。
1、第一种为单线程GC,也是默认的GC,该GC适用于单CPU机器。2、第二种为Throughput GC,是多线程的GC,适用于多CPU,使用大量线程的程序。第二种GC与第一种GC相似,不同在于GC在收集Young区是多线程的,但在Old区和第一种一样,仍然采用单线程。-XX:+UseParallelGC参数启动该GC。3、第三种为Concurrent Low Pause GC,类似于第一种,适用于多CPU,并要求缩短因GC造成程序停滞的时间。这种GC可以在Old区的回收同时,运行应用程序。-XX:+UseConcMarkSweepGC参数启动该GC。4、第四种为Incremental Low Pause GC,适用于要求缩短因GC造成程序停滞的时间。这种GC可以在Young区回收的同时,回收一部分Old区对象。-Xincgc参数启动该GC。
单文件的JVM内存进行设置
默认的java虚拟机的大小比较小,在对大数据进行处理时java就会报错:java.lang.OutOfMemoryError。设置jvm内存的方法,对于单独的.class,可以用下面的方法对Test运行时的jvm内存进行设置。java -Xms64m -Xmx256m Test-Xms是设置内存初始化的大小-Xmx是设置最大能够使用内存的大小(最好不要超过物理内存大小)
tomcat启动jvm内存设置
在/usr/local/apache-tomcat-5.5.23/bin目录下的catalina.sh添加:JAVA_OPTS='-Xms512m -Xmx1024m'要加“m”说明是MB,否则就是KB了,在启动tomcat时会报内存不足。-Xms:初始值-Xmx:最大值-Xmn:最小值Windows在catalina.bat最前面加入set JAVA_OPTS=-Xms128m -Xmx350m 如果用startup.bat启动tomcat,OK设置生效.够成功的分配200M内存.但是如果不是执行startup.bat启动tomcat而是利用windows的系统服务启动tomcat服务,上面的设置就不生效了,就是说set JAVA_OPTS=-Xms128m -Xmx350m 没起作用.上面分配200M内存就OOM了..windows服务执行的是bin\tomcat.exe.他读取注册表中的值,而不是catalina.bat的设置.解决办法:
修改注册表HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Tomcat Service Manager\Tomcat5\Parameters\JavaOptions
-Dcatalina.home="C:\ApacheGroup\Tomcat 5.0"-Djava.endorsed.dirs="C:\ApacheGroup\Tomcat 5.0\common\endorsed"-Xrs加入 -Xms300m -Xmx350m
重起tomcat服务,设置生效
weblogic启动jvm内存设置
在weblogic中,可以在startweblogic.cmd中对每个domain虚拟内存的大小进行设置,默认的设置是在commEnv.cmd里面。
默认可以使用的内存为64MB $JBOSSDIR$/bin/run.config JAVA_OPTS = "-server -Xms128 -Xmx512"
在所在目录下,键入 eclipse.exe -vmargs -Xms256m -Xmx512m 256m表示JVM堆内存最小值 512m表示JVM堆内存最大
进入控制台去设置:应用程序服务器 & server1 & 进程定义 & Java 虚拟机
【编辑推荐】
【责任编辑: TEL:(010)】
关于&&&&的更多文章
您是否在寻找比Java更安全,更简洁,又能跨平台的开发语言? 您
讲师: 367人学习过讲师: 14人学习过讲师: 50人学习过
如何看将流行的JavaScript MVC框架Ember.js? 这款Java
一周一周的过的很快,2013年已经进入了倒计时。开发频
在脚本语言领域,Lua是最快、最高效的脚本语言之一,
Linux出色的网络功能堪称当今操作系统中的佼佼者,无论在功能还是在支持能力上都有令人满意的表现。Linux内置的多个服务器,几乎
51CTO旗下网站}

我要回帖

更多关于 查看java虚拟机内存 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信