导航:首页 > 编程语言 > java虚拟机内存设置

java虚拟机内存设置

发布时间:2024-06-29 13:19:35

1. 杩愯宩ar鏂囦欢鍓嶏纴鎴戦渶瑕佽剧疆java铏氭嫙链鸿櫄𨰾熷唴瀛

璁剧疆JVM鍐呭瓨镄勫弬鏁版湁锲涗釜锛
-Xmx Java Heap链澶у硷纴榛樿ゅ间负鐗╃悊鍐呭瓨镄1/4锛屾渶浣宠惧煎簲璇ヨ嗙墿鐞嗗唴瀛桦ぇ灏忓强璁$畻链哄唴鍏朵粬鍐呭瓨寮阌钥屽畾锛
-Xms Java Heap鍒濆嫔硷纴Server绔疛VM链濂藉皢-Xms鍜-Xmx璁句负鐩稿悓鍊硷纴寮鍙戞祴璇曟満JVM鍙浠ヤ缭鐣欓粯璁ゅ硷绂
-Xmn Java Heap Young鍖哄ぇ灏忥纴涓岖啛鎭夋渶濂戒缭鐣欓粯璁ゅ硷绂
-Xss 姣忎釜绾跨▼镄凷tack澶у皬锛屼笉镡熸倝链濂戒缭鐣欓粯璁ゅ硷绂
2. 濡备綍璁剧疆JVM鍐呭瓨鍒嗛厤锛
锛1锛夊綋鍦ㄥ懡浠ゆ彁绀虹︿笅钖锷ㄥ苟浣跨敤JVM镞讹纸鍙瀵瑰綋鍓嶈繍琛岀殑绫籘est鐢熸晥锛夛细
java -Xmx128m -Xms64m -Xmn32m -Xss16m Test
锛2锛夊綋鍦ㄩ泦鎴愬紑鍙戠幆澧冧笅锛埚俥clipse锛夊惎锷ㄥ苟浣跨敤JVM镞讹细
a. 鍦╡clipse镙圭洰褰曚笅镓揿紑eclipse.ini锛岄粯璁ゅ唴瀹逛负锛堣繖閲岃剧疆镄勬槸杩愯屽綋鍓嶅紑鍙戝伐鍏风殑JVM鍐呭瓨鍒嗛厤锛夛细
-vmargs
-Xms40m
-Xmx256m
-vmargs琛ㄧず浠ヤ笅涓鸿櫄𨰾熸満璁剧疆鍙傛暟锛屽彲淇鏀瑰叾涓镄勫弬鏁板硷纴涔熷彲娣诲姞-Xmn锛-Xss锛屽彟澶栵纴eclipse.ini鍐呰缮鍙浠ヨ剧疆闱炲爢鍐呭瓨锛屽傦细-XX:PermSize=56m锛-XX:MaxPermSize=128m銆
姝ゅ勮剧疆镄勫弬鏁板煎彲浠ラ氲繃浠ヤ笅閰岖疆鍦ㄥ紑鍙戝伐鍏风殑鐘舵佹爮鏄剧ず锛
鍦╡clipse镙圭洰褰曚笅鍒涘缓鏂囦欢options锛屾枃浠跺唴瀹逛负锛歰rg.eclipse.ui/perf/showHeapStatus=true
淇鏀筫clipse镙圭洰褰曚笅镄别clipse.ini鏂囦欢锛屽湪寮澶村勬坊锷犲备笅鍐呭癸细
-debug
options
-vm
javaw.exe
閲嶆柊钖锷╡clipse锛屽氨鍙浠ョ湅鍒颁笅鏂圭姸镐佹浔澶氢简JVM淇℃伅銆

2. 关于设置Java虚拟机(JVM)的内存问题

最近做毕设时 遇到了一点小问题 在解析dblp xml文件时(该文件很大 最新版本为 MB) 老是报错

java lang OutOfMemoryError: Java heap space

最后通过查资料才知道 这是由于JVM堆内存不足造成的 JVM在启动动的时候一般会设置JVM Heap的值

其初始空间(即 Xms)是物理内存的 / 最大空间( Xmx)不可超过物理内存 在JVM中如果 %的时间是用于GC 且可用的Heap size 不足 %的时候将抛出此异常信息 出现这种问题可以通过修改JVM heap大小解决

点击(此处)折叠或打开

java Xms M Xmx M className

以上设置JVM初始化堆内存为 M 最大可用堆内存为 M

( )在命令行中设置的方法就如上面所述

( )在Eclipse中可以这样设置

在eclipse的 Run >Run Configurations >Arguments下的VM Arguments中设置

Xms M Xmx M

另外可以使用 java X查看其它JVM参数情况

点击(此处)折叠或打开

D:work>java X

Xmixed mixed mode execution (default)

Xint interpreted mode execution only

Xbootclasspath:<directories and zip/jar files separated by ;>

set search path for bootstrap classes and resources

Xbootclasspath/a:<directories and zip/jar files separated by ;>

append to end of bootstrap class path

Xbootclasspath/p:<directories and zip/jar files separated by ;>

prepend in front of bootstrap class path

Xnoclassgc disable class garbage collection

Xincgc enable incremental garbage collection

Xloggc:<file> log GC status to a file with time stamps

Xbatch disable background pilation

Xms<size> set initial Java heap size

Xmx<size> set maximum Java heap size

Xss<size> set java thread stack size

Xprof output cpu profiling data

Xfuture enable strictest checks anticipating future default

Xrs rece use of OS signals by Java/VM (see documentation)

Xcheck:jni perform additional checks for JNI functions

Xshare:off do not attempt to use shared class data

Xshare:auto use shared class data if possible (default)

Xshare:on require using shared class data otherwise fail

The X options are non standard and subject to change without notice

可以通过java lang Runtime的一些方法查看jvm的内存使用情况

点击(此处)折叠或打开

System out println( Total Memory: + Runtime getRuntime() totalMemory() / ( * + MB )

System out println( Free Memory: + Runtime getRuntime() freeMemory() / ( * ) + MB )

System out println( Max Memory: + Runtime getRuntime() maxMemory() / ( * ) + MB )

maxMemory()这个方法返回的是java虚拟机(这个进程)能构从操作系统那里挖到的最大的内存 以字节为单位

totalMemory()这个方法返回的是java虚拟机现在已经从操作系统那里挖过来的内存大小 也就是java虚拟机这个进程当时所占用的所有内存

freeMemory为当前jvm中没有使用的内存

附 jvm参数说明 (转自)

server:一定要作为第一个参数 在多个CPU时性能佳

Xms java Heap初始大小 默认是物理内存的 /

Xmx java heap最大值 建议均设为物理内存的一半 不可超过物理内存

XX:PermSize:设定内存的永久保存区初始大小 缺省值为 M (我用visualvm exe查看的)

XX:MaxPermSize:设定内存的永久保存区最大 大小 缺省值为 M (我用visualvm exe查看的)

XX:SurvivorRatio= :生还者池的大小 默认是 如果垃圾回收变成了瓶颈 您可以尝试定制生成池设置

XX:NewSize: 新生成的池的初始大小 缺省值为 M

XX:MaxNewSize: 新生成的池的最大大小 缺省值为 M

如果 JVM 的堆大小大于 GB 则应该使用值 XX:newSize= m XX:MaxNewSize= m XX:SurvivorRatio= 或者将堆的总大小的 % 到 % 分配给新生成的池 调大新对象区 减少Full GC次数

+XX:AggressiveHeap 会使得 Xms没有意义 这个参数让jvm忽略Xmx参数 疯狂地吃完一个G物理内存 再吃尽一个G的swap

Xss 每个线程的Stack大小 Xss 这使得JBoss每增加一个线程(thread)就会立即消耗 M内存 而最佳值应该是 K 默认值好像是 k

verbose:gc 现实垃圾收集信息

Xloggc:gc log 指定垃圾收集日志文件

Xmn young generation的heap大小 一般设置为Xmx的 分之一

XX:+UseParNewGC 缩短minor收集的时间

XX:+UseConcMarkSweepGC 缩短major收集的时间 此选项在Heap Size 比较大而且Major收集时间较长的情况下使用更合适

XX:userParNewGC 可用来设置并行收集【多CPU】

XX:ParallelGCThreads 可用来增加并行度【多CPU】

lishixin/Article/program/Java/hx/201311/26103

3. 怎么设置Tomcat的JVM虚拟机内存大小

方法/步骤

Tomcat作为应用服务器,不能直接运行,需要相应的硬件和操作系统的支持,,需要java虚拟机环境。也就是说tomcat启动的时候 ,JVM会分配一个初始内存以及最大内存给 tomcat,所以要提高tomcat的jvm内存,需要在启动的时候,进行配置

找到tomcat在本地电脑中的安装目录,进入这个目录,然后进入bin目录中,在window环境下找到bin目录中的catalina.bat,在linux环境下找到catalina.sh

右键编辑catalina.bat这个文件,找到JAVA_OPTS这个选项的位置,这个参数是java启动的时候,需要的启动参数

将这个参数设置为JAVA_OPTS='-Xms512m -Xmx1024m'表示初始化分配内存为512MB,可以使用的最大内存为1024MB。

也可以在操作系统的环境变量中对JAVA_OPTS进行设置,因为tomcat在启动的时候,也会读取操作系统中的环境变量的值,进行加载
如果是修改了操作系统的环境变量,需要重启机器,再重启tomcat,如果修改的是tomcat配置文件,需要将配置文件保存,然后重启tomcat,设置就能生效了

阅读全文

与java虚拟机内存设置相关的资料

热点内容
广联达算量怎么增加加密区 浏览:487
steam截屏图片默认文件夹 浏览:184
java环境变量设置mac 浏览:170
安卓如何传原图到ipad 浏览:850
命令方块手机版在哪里 浏览:145
po如何进去服务器 浏览:479
专门看美国剧情片网站 浏览:598
漏点的丧尸电影 浏览:864
html视频聊天源码 浏览:379
单片机网络运维 浏览:986
舌吻电影 浏览:453
单片机0ffh 浏览:405
机器人编程学习资料 浏览:149
被窝爱看大咖福利在线电影网 浏览:378
母乳汁理沦片 浏览:269
电子发票如何填写服务器地址 浏览:807
python主线程和子线程区别 浏览:531
看动画片的免费网站 浏览:39
五百里是哪部电影的主题曲 浏览:595
乘法口诀python程序 浏览:609