一:jvm部分参数
举例 | 说明 |
---|---|
-XX:+PrintGCDetails | 查看java的gc详细细节 |
-XX:+PrintFlagsInitial | 查看java的基础参数 |
-Xms20m | 设置初始堆大小 |
-Xmx20m | 设置最大堆大小 |
-Xmn10m | 设置年轻代大小 |
-Xss | 设置每个线程的栈大小 |
-XX:ThreadMaxSize | 设置每个线程的栈大小 |
-XX:MetaspaceSize | 设置元空间的大小 |
-XX:PrintCommandLineFlags | 打印所有 XX 参数及值 |
-XX:UseParallelGC | 使用并行垃圾回收器 |
XX:SurvivorRatio | Eden区与Survivor区的大小比值 |
-XX:NewRatio | 年轻代(包括Eden和两个Survivor区)与年老代的比值(除去持久代) |
-XX:MaxTenuringThreshold | 垃圾最大年龄 |
二: jvm监控工具使用
jps -l //查看所有java进程号
jinfo -flags //查看java的初始化值
三:jvm使用java代码查看
//当前JVM占用的内存总数,其值相当于当前JVM已使用的内存及freeMemory()的总和
long totalMemory=Runtime.getRuntime().totalMemory();
//最大可用内存,对应-Xmx
long maxMemory=Runtime.getRuntime().maxMemory();
//当前JVM空闲内存
long freeMemory=Runtime.getRuntime().freeMemory();
//获取cpu的数目
int n=Runtime.getRuntime().availableProcessors();