查看&修改JVM运行参数方法小结
查看JVM参数状态的方法
1、JDK本身提供了许多查看JVM运行参数,状态的工具,如
Jmap,Jstat,VisualVM等;
2、也可以直接在程序中通过RunTime类查看JVM内存信息:
1
Runtime.getRuntime().maxMemory(); //最大可用内存,对应-Xmx
2
Runtime.getRuntime().freeMemory(); //当前JVM空闲内存
3
Runtime.getRuntime().totalMemory(); //当前JVM占用的内存总数,其值相当于当前JVM已使用的内存及freeMemory()的总和
maxMemory():为JVM的最大可用内存,可通过-Xmx设置;
totalMemory():为当前JVM占用的内存总数,totalMemory = JVM已使用的内存 + freeMemory 会随着JVM使用内存的增加而增加;
freeMemory():为当前JVM空闲内存,因为JVM只有在需要内存时才占用物理内存使用,所以freeMemory()的值一般情况下都很小,freeMemory() = maxMemory()-totalMemory()+freeMemory();
JVM运行参数基本解释
1、基本的JVM内存参数:
典型的JVM内存参数配置示例:
1
-Xmx3550m
2
-Xms3550m
3
-Xmn2g
4
-Xss128k
2、常见的JVM行为参数
Java启动参数共分为3类;
标准参数(-),所有的JVM实现都必须实现这些参数的功能,而且向后兼容;非标准参数(-X),默认jvm实现这些参数的功能,但是并不保证所有jvm实现都满足,且不保证向后兼容;非Stable参数(-XX),此类参数各个jvm实现会有所不同,将来可能会随时取消,需要慎重使用;
设置JVM运行参数的方法
1、在命令行中启动并使用JVM时:
方法B:
1
java -Xmx128m -Xms64m -Xmn32m -Xss16m Test //假设测试的类是Test
2、在Eclpse中启动JVM时:
方法A:
在eclipse根目录下打开【eclipse.ini】,默认内容如下:
1
-vmargs
2
-Xms40m
3
-Xmx256m
-vmargs表示以下为虚拟机设置参数,可修改其中的参数值,也可添加-Xmn,-Xss,另外,eclipse.ini内还可以设置非堆内存,如:-XX:PermSize=56m,-XX:MaxPermSize=128m。
打开【eclipse>>窗口>>首选项>>Java>>已安装的JRE】(对在当前开发环境中运行的java程序皆生效)
编辑当前使用的JRE,在缺省VM参数中输入:-Xmx128m -Xms64m -Xmn32m -Xss16m
方法C:
打开【eclipse>>运行>>运行>>Java应用程序】(只对所设置的java类生效)
选定需设置内存分配的类-自变量,在VM自变量中输入:-Xmx128m -Xms64m -Xmn32m -Xss16m
※如果在同一开发环境中同时进行了B和C设置,则B设置生效,C设置无效,如:
3、在IDEA中启动JVM时:
打开 【IDEA 安装目录>>bin 】,其中有两个 vmoptions 文件,需针对不同的JDK进行配置:
打开 【IDEA 安装目录>>bin 】,其中有两个 vmoptions 文件,需针对不同的JDK进行配置:
32 位:idea.exe.vmoptions
64 位:idea64.exe.vmoptions
1
-Xms512m
2
-Xmx1024m
3
-XX:MaxPermSize=512m
4
-XX:ReservedCodeCacheSize=225m
5
-XX:+UseConcMarkSweepGC
6
-XX:SoftRefLRUPolicyMSPerMB=50
7
-ea
8
-Dsun.io.useCanonCaches=false
9
-Djava.net.preferIPv4Stack=true
4、在Tomcat服务器中启动JVM时:
方法A:
设置环境变量:
变量名:CATALINA_OPTS
变量值:-Xmx128m -Xms64m -Xmn32m -Xss16m
方法B:
打开【Tomcat根目录>>bin文件夹>>
catalina.bat或
catalina.sh
】,编辑,将其中的TALINA_OPTS%(共有四处)替换为:-Xmx128m -Xms64m -Xmn32m -Xss16m