美文网首页
JVM参数调试实战

JVM参数调试实战

作者: spring_coderman | 来源:发表于2019-12-15 09:41 被阅读0次

JVM基础参数配置简介

jvm基础参数.png

标准选项(cmd下 输入java 即可打印所有标准选项)
X选项也叫非标准选项(cmd下输入java -X 即可打印所有非标准选项)
XX选项(cmd下输入java -XX:+PrintFlagsInitial -version,即可打印所有XX选项的默认值)
本次分享主要就是说基于HotSpot JVM平台,讲这三类JVM参数,其中还会演示一些工具平台的使用

标准选项-verbose.png JVM运行模式.png JVM常用X选项.png

有时候输出并不是以X选项的模式输出的,而是以XX选项输出的,值的单位一般为KB

JVM编译.png

指定JIT编译器模式
Java是一种解释型语言,但随着JIT技术的进步,它能在运行时将Java的字节码编译成本地代码。以下是几个相关的选项:
-Xint表示禁用JIT,所有字节码都被解释执行,这个模式的速度最慢的(字节码->机器码)。
-Xcomp表示所有字节码都首先被编译成本地代码(即机器码),然后再执行。
-Xmixed,默认模式,让JIT根据程序运行的情况,有选择地将某些代码编译成本地代码。
-Xcomp和-Xmixed到底谁的速度快,针对不同的程序可能有不同的结果,基本还是推荐用默认模式。

JVM进阶参数配置简介

XX选项.png

-XX:+PrintFlagsFinal:所有XX参数的默认值
and -XX:+PrintFlagsInitial 查看所有JVM参数启动的初始值
-XX:+UnlockExperimentalVMOptions
-XX:+UnlockDiagnosticVMOptions
-XX:+PrintCommandLineFlags 所有跟最初的默认值不同的参数及它们的值

堆区配置.png

-XX:MaxTenuringThreshold
-XX:MaxTenuringThreshold只对串行回收器和ParNew有效,对ParallGC无效。存活次数在串行和ParNew方式中可通过-XX:MaxTenuringThreshold来设置,ParallelScavenge则根据运行状态来决定。
-XX:PretenureSizeThreshold
-XX:PretenureSizeThreshold,设置大对象直接进入年老代的阈值。-XX:PretenureSizeThreshold只对串行回收器和ParNew有效,对ParallGC无效。默认该值为0,即不指定最大的晋升大小,一切由运行情况决定。

非堆配置.png

https://blog.csdn.net/qq_33301113/article/details/67071632
https://www.jianshu.com/p/7ab3e3a6562e

元空间配置.png

1、字符串存在永久代中,容易出现性能问题和内存溢出。
2、类及方法的信息等比较难确定其大小,因此对于永久代的大小指定比较困难,太小容易出现永久代溢出,太大则容易导致老年代溢出。
3、永久代会为 GC 带来不必要的复杂度,并且回收效率偏低。
4、Oracle 可能会将HotSpot 与 JRockit 合二为一。

GC收集器总览.png GC配置.png

http://www.ityouknow.com/jvm/2017/08/29/GC-garbage-collection.html

CMS垃圾收集器配置.png

第二,三,四的参数对于CMS的标记过程比较慢的时候可以起到一定的缓解作用

G1垃圾收集器配置.png GC打印.png

高级参数&调试工具

下面介绍一些平时不怎么遇到的参数,以及如果出现相关的问题,可以通过JVM参数去跟踪调试,优化

高级GC配置.png

GC相关的配置,其实还不止这些,这里再给大家介绍两个 -Xloggc:D:/CMSgc.log,-XX:+UseGCLogFileRotation(按GC日志大小切分日志信息)但是大多数情况下这些基本够用

代码缓存.png 编译与跟踪.png JVM自带工具&调试命令.png 其他JVM工具与网站.png

总结

以上为内部分享部分资料,其实还有很多内容没有说到,抛砖引玉吧
https://www.jianshu.com/p/86e358afdf17
https://www.cnblogs.com/aspirant/p/8663872.html

相关文章

  • JVM参数调试实战

    JVM基础参数配置简介 标准选项(cmd下 输入java 即可打印所有标准选项)X选项也叫非标准选项(cmd下输入...

  • JVM参数

    JVM参数 功能开关: 性能参数: 调试参数:

  • JVM参数

    JMX监控调试参数 jps命令 jstat 上图表头描述: JVM启动参数| 参数 | 描述 ||-----|--...

  • JVM的参数详解

    今天就整理下JVM的参数!相对而已JVM有很多参数,但对于一般开发人员执行知道和堆栈大小,GC、远程调试的参数即可...

  • JVM-参数调试

      JVM参数类型:1)标配参数 2)X参数 3)XX参数。  标配参数:1)-version 2)-help 3...

  • IDEA调试服务器上部署的程序

    使用特定JVM参数运行服务端代码: 要让远程服务器运行的代码支持远程调试,则启动的时候必须加上特定的JVM参数,这...

  • 实战JVM参数配置

    本案例是想通过JVM参数配置了解到Java虚拟机内存默认参数的设置 代码如下 测试过程 启动时配置jvm参数 运行...

  • 从OOM到JVM内存分配

    java环境 构造OOM条件 1. 设置JVM堆大小,固定40M 2. 设置打印GC信息 配置JVM调试参数 测试...

  • 性能调优参数

    堆内存性能优化参数 垃圾回收性能优化参数 JVM服务参数调优实战 服务器配置:8 CPU,8G MEM,JDK 1...

  • JVM配置说明&查看和修改JVM某线程的各种配置值

    JVM配置说明&查看和修改JVM的各种配置值 JVM参数类型 标配参数 x参数(了解) xx参数 JVM标准参数(...

网友评论

      本文标题:JVM参数调试实战

      本文链接:https://www.haomeiwen.com/subject/sidknctx.html