java虚拟机的内存怎么设置 java虚拟机内存设置.docx

上传人:m**** 文档编号:552557753 上传时间:2023-05-05 格式:DOCX 页数:5 大小:19.81KB
返回 下载 相关 举报
java虚拟机的内存怎么设置 java虚拟机内存设置.docx_第1页
第1页 / 共5页
java虚拟机的内存怎么设置 java虚拟机内存设置.docx_第2页
第2页 / 共5页
java虚拟机的内存怎么设置 java虚拟机内存设置.docx_第3页
第3页 / 共5页
java虚拟机的内存怎么设置 java虚拟机内存设置.docx_第4页
第4页 / 共5页
java虚拟机的内存怎么设置 java虚拟机内存设置.docx_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《java虚拟机的内存怎么设置 java虚拟机内存设置.docx》由会员分享,可在线阅读,更多相关《java虚拟机的内存怎么设置 java虚拟机内存设置.docx(5页珍藏版)》请在金锄头文库上搜索。

1、本文格式为Word版,下载可任意编辑java虚拟机的内存怎么设置 java虚拟机内存设置 信任许多人都学过java,那么你知道java虚拟机的内存设置吗?不知道的话跟着我一起来学习了解java虚拟机的内存设置。 java虚拟机的内存设置详解 基本概念: PermGen space:全称是Permanent Generation space.就是说是永久保存的区域,用于存放Class和Meta信息,Class在被Load的时候被放入该区域 Heap space:存放Instance。 GC(Garbage Collection)应当不会对PermGen space进行清理 所以假如你的APP会L

2、OAD许多CLASS的话,就很可能消失PermGen space错误 Java Heap分为3个区 1.Young 2.Old 3.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

3、区的大小等于-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

4、后最好能有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

5、 每个线程的Stack大小 Stack的大小限制着线程的数量。假如Stack过大就好导致内存溢漏。-Xss参数打算Stack大小,例如-Xss1024K。假如Stack太小,也会导致Stack溢漏。 硬件环境 硬件环境也影响GC的效率,例如机器的种类,内存,swap空间,和CPU的数量。 假如你的程序需要频繁创建许多transient对象,会导致JVM频繁GC。这种状况你可以增加机器的内存,来削减Swap空间的使用。 4种GC 1、第一种为单线程GC,也是默认的GC,该GC适用于单CPU机器。 2、其次种为Throughput GC,是多线程的GC,适用于多CPU,使用大量线程的程序。其次种G

6、C与第一种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。 单文件的

7、jvm内存进行设置 默认的java虚拟机的大小比较小,在对大数据进行处理时java就会报错:java.lang.OutOfMemoryError。 设置jvm内存的方法,对于单独的.class,可以用下面的方法对Test运行时的jvm内存进行设置。 java -Xms64m -Xmx256m Test -Xms是设置内存初始化的大小 -Xmx是设置最大能够使用内存的大小(最好不要超过物理内存大小) tomcat启动jvm内存设置 Linux: 在/usr/local/apache-tomcat-5.5.23/bin名目下的catalina.sh添加:JAVA_OPTS=-Xms512m -Xm

8、x1024m要加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服务执行

9、的是bintomcat.exe.他读取注册表中的值,而不是catalina.bat的设置.解决方法: 修改注册表HKEY_LOCAL_MACHINESOFTWAREApache Software FoundationTomcat Service ManagerTomcat5ParametersJavaOptions 原值为 -Dcatalina.home=C:ApacheGroupTomcat 5.0 -Djava.endorsed.dirs=C:ApacheGroupTomcat 5.0commonendorsed -Xrs加入 -Xms300m -Xmx350m 重起tomcat服务,设置

10、生效 weblogic启动jvm内存设置 在weblogic中,可以在startweblogic.cmd中对每个domain虚拟内存的大小进行设置,默认的设置是在commEnv.cmd里面。 JBoss 默认可以使用的内存为64MB $JBOSSDIR$/bin/run.config JAVA_OPTS = -server -Xms128 -Xmx512 eclipse 在所在名目下,键入 eclipse.exe -vmargs -Xms256m -Xmx512m 256m表示JVM堆内存最小值 512m表示JVM堆内存最大 Websphere 进入掌握台去设置:应用程序服务器 server1 进程定义 Java 虚拟机 java虚拟机的内存设置详解第 1 页 共 1 页

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 其它文档 > 租房合同

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号