jvm 优化

Posted dehigher

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jvm 优化相关的知识,希望对你有一定的参考价值。

1、jvm 运行参数

1.1 jvm 参数类型

1.1.1 标准参数

-help

-version

1.1.2 -X参数(非标准参数)

-Xint

-Xcomp

1.1.3-XX参数(使用率高)

-XX:newSize

-XX:+UseSerialGC

 

2、标准参数

jvm 标准参数,一般都是很稳定的,在未来的jvm 版本中不会改变,可使用java -help 检索所有标准参数

2.1 常用标准参数命令

2.1.1 查看java 版本

java -version

2.1.2 通过-D 设置系统属性参数

java -Dkeyname=value

String value = System.getProperties("keyname")

2.1.3 -server 与 -client 参数

(1)区别:Server VM 的初始化堆空间大、默认使用并行垃圾回收器、启动慢,但是运行快

(2)Client VM 相对初始堆内存小、启动快、但运行慢

(3)64 位操作系统只支持server类型、不支持client类型、jvm根据系统自动选择

 

3、-X 参数

jvm -x参数是非标准参数 , 在不同版本的jvm 中可能有所不同 ,可以通过java -X 查看非标准参数

3.1 -Xint 、-Xcomp 、-Xmixed

-Xint 是解释器模式,每次都去直接执行字节码,不编译到本地、

-Xcomp 是编译模式 、全部编译到本地、包括只需执行一次的代码

-Xmixed 是混合模式,由JIT 编译器自动选择前面两种模式、jvm默认模式、推荐模式

 

4、-XX 参数

-XX参数也是非标准参数、主要用户jvm调优和debug操作

 

4.1 -XX 参数使用方式

4.1.1 boolean 类型

-XX:[+-]<name> : + 表示启动 、-表示禁用

 

4.1.2 非boolean类型

-XX:<name>=value

 

 

4.2 常用命令

4.2.1 -Xms、 -Xmx

-Xms: jvm堆内存初始大小、-XX:InitialHeapSize 

-Xmx: jvm堆内存最大大小、 -XX:MaxHeapSize

java -Xms512m -Xmx2048m

 

 

4.2.2 查看jvm运行参数

4.2.2.1 运行java命令时打印jvm 运行参数

-XX:+PrintFlagsFinal

java -XX:PrintFlagsFinal -version -jar XXX.jar

 

结果中,值的操作符号 有 := 和 = ,其中= 为默认值 ,:= 为已被修改

4.2.2.2 查看正在运行的java进程的运行参数

使用jinfo命令查看

(1)使用jps 查看进程

(2)jinfo -flags <进程id>

 

以上是关于jvm 优化的主要内容,如果未能解决你的问题,请参考以下文章

java 简单的代码片段,展示如何将javaagent附加到运行JVM进程

优化 C# 代码片段、ObservableCollection 和 AddRange

JVM总结:晚期(运行期)优化

使用 C++ 反转句子中的每个单词需要对我的代码片段进行代码优化

如何优化C ++代码的以下片段 - 卷中的零交叉

JVM-程序编译与代码早期(编译期)优化