JVM参数类型
标配参数,x参数(了解),xx参数(重点)
标配参数
x参数(了解)
指定JIT编译器的模式:-Xint,-Xcomp,-Xmixed
我们知道Java是一种解释型语言,但是随着JIT技术的进步,它能在运行时将Java的字节码编译成本地代码。以下是几个相关的选项:
-Xint表示禁用JIT,所有字节码都被解释执行,这个模式的速度最慢的。
-Xcomp表示所有字节码都首先被编译成本地代码,然后再执行。
-Xmixed,默认模式,让JIT根据程序运行的情况,有选择地将某些代码编译成本地代码。
-Xcomp和-Xmixed到底谁的速度快,针对不同的程序可能有不同的结果,基本还是推荐用默认模式。
xx参数(重点)
Boolean类型
公式: -XX:+或者- 某个属性值
+表示开启
- 表示关闭
如: -XX:+UseConcMarkSweepGC
-XX:+UseG1GC
KV设置类型
比如: -XX:MaxGCPauseMillis=500
-XX:GCTimeRatio=19
-Xms等价于 -XX:InitialHeapSize 初始化队列大小
-Xmx 等价于 -XX:MaxHeapSize 最大队列大小
jinfo举例,如何查看当前运行程序的配置
0:demo
package demo;
import java.util.concurrent.*;
import static java.lang.System.out;
public class ThreadPool {
public static void main(String[] args) {
ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(2,
5,
1l, TimeUnit.SECONDS,
new LinkedBlockingQueue<>(3),
Executors.defaultThreadFactory(),
new ThreadPoolExecutor.AbortPolicy());
try {
for (int i = 1; i <=5 ; i++) {
threadPoolExecutor.execute(()->{
out.println(Thread.currentThread().getName()+" 办理业务");
});
}
}catch (Exception e){
e.printStackTrace();
}
}
}
1:jps -l 查询你需要查看的运行程序进程号
2: jinfo -flag PrintGCDetails 7652 查询程序单个配置
减号表示没有开启打印GC细节这个参数
3:开启 PrintGCDetails
元空间初始值大小约21M
4:jinfo -flags :查询程序所有JVM参数配置
F:\softInstall\project\demo>jinfo -flags 8268
Attaching to process ID 8268, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 25.191-b12
Non-default VM flags: -XX:CICompilerCount=3 -XX:InitialHeapSize=134217728
-XX:MaxHeapSize=2126512128 -XX:MaxNewSize=708837376 -XX:MinHeapDeltaBytes=524288
-XX:NewSize=44564480 -XX:OldSize=89653248 -XX:+PrintGCDetails
-XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:+UseFastUnorderedTimeStamps
-XX:-UseLargePagesIndividualAllocation -XX:+UseParallelGC
Command line: -XX:+PrintGCDetails -javaagent:F:\softInstall\IDEA2018\IntelliJ IDEA 2018.3.3\lib\idea_rt.jar=52333:F:\softInstall\IDEA2018\IntelliJ IDEA 2018.3.3\bin -Dfile.encoding=UTF-8
5:-XX:+PrintCommandLineFlags (重点)
-XX:+PrintCommandLineFlags可以让在程序运行前打印出用户手动设置或者JVM自动设置的XX选项
-XX:InitialHeapSize=132899648 -XX:MaxHeapSize=2126394368
-XX:+PrintCommandLineFlags -XX:+PrintGCDetails -XX:+UseCompressedClassPointers
-XX:+UseCompressedOops -XX:-UseLargePagesIndividualAllocation -XX:+UseParallelGC
6:-XX:+PrintFlagsInitial: JVM 盘底查看默认初始值 (重点)
7:-XX:+PrintFlagsFinal(重点)
= 表示默认值
:= 表示人为或者是机器修改后的值
-XX:InitialHeapSize=132899648 -XX:MaxHeapSize=2126394368 -XX:+PrintCommandLineFlags
-XX:+PrintFlagsFinal -XX:+PrintGCDetails -XX:+UseCompressedClassPointers
-XX:+UseCompressedOops -XX:-UseLargePagesIndividualAllocation -XX:+UseParallelGC