本文目录一览:
- 1、如何增加java虚拟机内存
- 2、谁英语好,拜托了,帮我翻译一下,我把财富值都给你。
- 3、java xms 怎么设置大小
- 4、启动JAVA程序时,参数-Xms及Xmx有什么用
- 5、Linux里面JVM内存怎么设置?
- 6、Eclipse的-Xms128M -Xmx512M设置
如何增加java虚拟机内存
一、设置JVM内存设置
1. 设置JVM内存的参数有四个:
-Xmx Java Heap更大值,默认值为物理内存的1/4,更佳设值应该视物理内存大小及计算机内其他内存开销而定;
-Xms Java Heap初始值,Server端JVM更好将-Xms和-Xmx设为相同值,开发测试机JVM可以保留默认值;
-Xmn Java Heap Young区大小,不熟悉更好保留默认值;
-Xss 每个线程的Stack大小,不熟悉更好保留默认值;
2. 如何设置JVM内存分配:
(1)当在命令提示符下启动并使用JVM时(只对当前运行的类Test生效):
java -Xmx128m -Xms64m -Xmn32m -Xss16m Test
(2)当在集成开发环境下(如eclipse)启动并使用JVM时:
a. 在eclipse根目录下打开eclipse.ini,默认内容为(这里设置的是运行当前开发工具的JVM内存分配):
-vmargs
-Xms40m
-Xmx256m
-vmargs表示以下为虚拟机设置参数,可修改其中的参数值,也可添加-Xmn,-Xss,另外,eclipse.ini内还可以设置非堆内存,如:-XX:PermSize=56m,-XX:MaxPermSize=128m。
此处设置的参数值可以通过以下配置在开发工具的状态栏显示:
在eclipse根目录下创建文件options,文件内容为:org.eclipse.ui/perf/showHeapStatus=true
修改eclipse根目录下的eclipse.ini文件,在开头处添加如下内容:
-debug
options
-vm
javaw.exe
重新启动eclipse,就可以看到下方状态条多了JVM信息。
b. 打开eclipse-窗口-首选项-Java-已安装的JRE(对在当前开发环境中运行的java程序皆生效)
编辑当前使用的JRE,在缺省VM参数中输入:-Xmx128m -Xms64m -Xmn32m -Xss16m
c. 打开eclipse-运行-运行-Java应用程序(只对所设置的java类生效)
选定需设置内存分配的类-自变量,在VM自变量中输入:-Xmx128m -Xms64m -Xmn32m -Xss16m
注:如果在同一开发环境中同时进行了b和c设置,则b设置生效,c设置无效,如:
开发环境的设置为:-Xmx256m,而类Test的设置为:-Xmx128m -Xms64m,则运行Test时生效的设置为:
-Xmx256m -Xms64m
(3)当在服务器环境下(如Tomcat)启动并使用JVM时(对当前服务器环境下所以Java程序生效):
a. 设置环境变量:
变量名:CATALINA_OPTS
变量值:-Xmx128m -Xms64m -Xmn32m -Xss16m
b. 打开Tomcat根目录下的bin文件夹,编辑catalina.bat,将其中的�TALINA_OPTS%(共有四处)替换为:-Xmx128m -Xms64m -Xmn32m -Xss16m
谁英语好,拜托了,帮我翻译一下,我把财富值都给你。
.boot up your pc with windows
启动您的电脑与窗口。
.start pro/e setup
启动和安装。
.open ptc_licfile.dat with your fav txt-editor
ptc_licfile.dat与你最喜爱的txt-editor开放。
.replace every occurance of 00-00-00-00-00-00 with the one shown in the bottom left corner of the Pro/e setup
。将每一个发生的一00-00-00-00-00-00显示在左下角的职业/安装
(its your mac-id, format: xx-xx-xx-xx-xx)
(你的mac-id,格式:xx-xx-xx-xx-xx)
.install pro/e - pro/m - pro/ds, i dont care which one or in which order
。安装、亲/米-亲/德尚,我不在乎一个或在其中
.on license-config screen select "nodelocked license" and point to edited ptc_licfile.dat
license-config屏幕上。选择“nodelocked许可证”和ptc_licfile.dat点编辑
.blalala install
blalala安装。
next for pro/engineer:
下一个软件工程师:
(if u didnt install the complete package, u get "missing file" errors, accept or bleed)
(如果你没有安装完整的包,你得到“丢失的文件”的错误,接受或出血)
.run ptc.pro engineer.wildfire.4.0-patch.exe, point to installdir\i486_nt\obj folder
运行工程师。ptc.pro野火4.0-patch。。。,点installdir\\i486_nt目标文件夹
.edit pro/e installdir\bin\proev.bat
。编辑和\\proev.batinstalldir仓
change "%start_cmd% "%CGTECH_JRE%\bin\javaw" -Xms16m -Xmx64m -Xss4m -classpath "%CGTECH_CLASSES%;%CGTECH_CLASSES%\CGTech.jar" Vericut %argstr%" in
更改“%start_cmd%%%\\”cgtech_jre仓javaw”----xms16mxmx64mxss4m路径“%cgtech_classes%;%cgtech_classes% \cgtech。”该argstr%%”
"%start_cmd% "%CGTECH_JRE%\bin\javaw" -Xms16m -Xmx64m -Xss4m -classpath "%CGTECH_CLASSES%;%CGTECH_CLASSES%\CGTech.jar" Vericut %argstr% PTC_KEY=0"
“%start_cmd%%\\“%cgtech_jre仓javaw”----xms16mxmx64mxss4m路径“%cgtech_classes%;%cgtech_classes% \cgtech。”该argstr%%ptc_key=0”
(add PTC_KEY=0)
(添加ptc_key=0)
pro/mechanica:
机械零件:
.run ptc.pro mechanica.wildfire.4.0-patch.exe
ptc.promechanica.wildfire.4.0-patch.exe运行。
.point to pro/m installdir\i486_nt\bin
点。/米installdir\i486_nt\仓
pro/m installdir\i486_nt\obj
亲/米installdir\i486_nt\对象
pro/m installdir\i486_nt\ptc
亲/米installdir\i486_nt\公司
(in this order, after every "missing file" error)
(在这个秩序,以后每逢“丢失的文件”错误)
pro/distributed services:
临/分布式服务:
.run ptc.distributed.services.4.0-patch.exe and point to pro/ds installdir\i486_nt\obj
经营ptc.distributed.services.4.0-patch.exe和点。/德尚installdir\i486_nt\对象
java xms 怎么设置大小
在一些规模稍大的应用中,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.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区的大小等于-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空间的使用。
4种GC
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内存设置
Linux:
在/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
启动JAVA程序时,参数-Xms及Xmx有什么用
个人之见,欢迎指正:
Xmx是java的一个选项,用来设置你的应用程序能够使用的更大内存数(看好,致使你的应用程序,不是整个jvm),如果你的程序要花很大内存的话,那就需要修改缺省的设置,比如配置tomcat的时候,如果流量啊程序啊都很大的话就需要加大这个值了,不过有一点是要记住的,不要大得超过你的机器的内存,那样你的机器会受不了的,到时候就死翘翘了。
Xms是另一个设置内存的参数,用它来设置程序初始化的时候内存栈的大小,增加这个值的话你的程序的启动性能会得到提高。不过同样有前面的限制,以及受到xmx的限制。
另外,一个操作系统通常都只使用jvm,这就是你说的“运行在同一个JVM中的程序”,不同的虚拟机的实现虽然千差万别,但是他们的运行模式都是一样的,只是性能有所不同罢了。
Linux里面JVM内存怎么设置?
jar包启动时指定对应参数,比如我的工程启动命令就是这样的
启动命令,打码部分为工程名
常见参数如下
1.-Xms:初始堆大小。只要启动,就占用的堆大小。
2.-Xmx:更大堆大小。java.lang.OutOfMemoryError:Java heap这个错误可以通过配置-Xms和-Xmx参数来设置。
3.-Xss:栈大小分配。栈是每个线程私有的区域,通常只有几百K大小,决定了函数调用的深度,而局部变量、参数都分配到栈上。
当出现大量局部变量,递归时,会发生栈空间OOM(java.lang.StackOverflowError)之类的错误。
4.XX:NewSize:设置新生代大小的绝对值。
5.-XX:NewRatio:设置年轻代和年老代的比值。比如设置为3,则新生代:老年代=1:3,新生代占总heap的1/4。
6.-XX:MaxPermSize:设置持久代大小。
java.lang.OutOfMemoryError:PermGenspace这个OOM错误需要合理调大PermSize和MaxPermSize大小。
7.-XX:SurvivorRatio:年轻代中Eden区与两个Survivor区的比值。注意,Survivor区有form和to两个。比如设置为8时,那么eden:form:to=8:1:1。
8.-XX:HeapDumpOnOutOfMemoryError:发生OOM时转储堆到文件,这是一个非常好的诊断 *** 。
9.-XX:HeapDumpPath:导出堆的转储文件路径。
10.-XX:OnOutOfMemoryError:OOM时,执行一个脚本,比如发送邮件报警,重启程序。后面跟着一个脚本的路径。
Eclipse的-Xms128M -Xmx512M设置
貌似是有关系的
我的配置是-Xms256m -Xmx512m -Xss4M -XX:MaxPermSize=256m -Duser.timezone=GMT+8 我2G内存
记得有一次我改成 521 512就堆栈溢出,是jvm本身启动的时候就溢出了.
改成128 256 ,也溢出,但是因为程序