JVM性能优化 (一) 初识JVM (2)

很多应用在使用 -Xcomp也会有一些性能损失,不过会比使用 -Xint 损失的少,原因是 -Xcomp没有让JVM启动JIT编译器的全部功能,JIT编译器可以对是否需要编译做判断,如果所有代码进行编译的话,对于一些只执行一次的代码就没有意义了

-Xmixed是混合模式,将解释模式与编译模式进行混合使用,由jvm自己决定,这是jvm默认的模式,也是推荐使用的模式

示例:强势设置运行模式

# 强制设置为解释模式 [root@localhost ~]# java -showversion -Xint TestJvm # 强制设置为编译模式 # 注意:在编译模式下,第一次执行会比 [root@localhost ~]# java -showversion -Xcomp TestJvm # 默认的混合模式 [root@localhost ~]# java -showversion -Xmixed TestJvm

JVM性能优化 (一) 初识JVM

2.4 -XX参数

-XX参数也是非标准参数,主要用于jvm的调优和debug操作
-XX参数的使用有2种方式,一种是boolean类型,一种是非boolean类型:

boolean类型

格式:-XX:[+-] <name> 标识启用或禁用<name>属性,+表示开启,-表示关闭

如:-XX:+DisableExplicitGC 表示禁用手动调用gc操作,也就是说调用System.gc()无效

非boolean类型

格式:-XX:<name>=<value>表示<name>属性的值为<value>

如:-XX:NewRatio=1表示新生代和老年代的比值

是否打印GC收集细节

-XX:+PrintGCDetails

-XX:-PrintGCDetails

是否使用串行垃圾收集器

-XX:+UseSerialGC

-XX:-UserSerialGC

在这里配置-XX:属性值后

JVM性能优化 (一) 初识JVM


再启动我们的main方法

在这里插入图片描述

2.5 -Xms与-Xmx参数

-Xms与-Xmx分别是设置jvm的堆内存的初始大小和最大大小
-Xmx2048m:等价于-XX:MaxHeapSize,设置JVM最大堆内存为2048M
-Xms512m:等价于-XX:InitialHeapSize,设置JVM初始堆内存为512M
适当的调整jvm的内存大小,可以充分利用服务器资源,让程序跑的更快
示例:

[root@localhost ~]# java -Xms512m -Xmx2048m TestJvm muxiaonong 2.6 查看jvm的运行参数

有些时候我们需要查看jvm的运行参数,这个需求可能会存在2种情况:
第一,运行java命令时打印出运行参数;
第二,查看正在运行的java进程的参数;

2.6.1 运行java命令时打印参数
java -XX:+PrintFlagsFinal -version

JVM性能优化 (一) 初识JVM

在上述的信息可以看出,参数有boolean类型和数字类型,值的操作符是 =或者 :=,分别代表默认值和被修改的值

三、JVM的内存模型

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wsswjy.html