建设网站的模板下载,网站规划的任务,如何用服务器搭建网站,苏州网站建设招标本实验的目的是讲解 JVM 的三大参数类型。在JVM调优中用到的最多的 XX 参数#xff0c;而如何去查看和设置 JVM 的 XX 参数也是调优的基本功#xff0c;本节以实验的方式讲解 JVM 参数的查看和设置。希望大家能有所启发。标配参数常见标配参数-version#xff0c;获取JDK版本…  本实验的目的是讲解 JVM 的三大参数类型。在JVM调优中用到的最多的 XX 参数而如何去查看和设置 JVM 的 XX 参数也是调优的基本功本节以实验的方式讲解 JVM 参数的查看和设置。希望大家能有所启发。标配参数常见标配参数-version获取JDK版本-help获取帮助-showverision获取JDK版本和帮助动手实验 1 - 查看标配参数实验步骤查看Java JDK 版本java -version实验 1-1可以看到Java JDK 版本为1.8.0_131查看 Java 帮助文档java -help实验 1-2查看版本和帮助文档java -showversion实验 1-3X 参数X 参数简介我们常用的javac大家都知道是把java代码编译成 class 文 Java 文件那么 class 文件怎么去执行呢这里用到了三个X参数来说明 class 文件怎么在虚拟机里面跑起来的。-Xint直接解释执行-Xcomp先编译成本地代码再执行-XMixed混合模式(既有编译执行也有解释执行)动手实验 2 - 查看和配置X参数查看版本java -version在WebIDE的控制台窗口执行Java -version 后可以看到我的环境是混合模式执行java程序的。实验 2-1修改编译模式为解释执行模式java -Xint -version在WebIDE的控制台窗口执行命令实验 2-2修改编译模式为只编译模式java -Xcomp -version实验 2-3XX 参数XX  参数简介XX 参数有两种类型一种是 Boolean 类型另外一种是键值对类型。Boolean 类型公式-XX:某个属性 或者-XX:-某个属性 表示开启了这个属性-表示关闭了这个属性。案例-XX:-PrintGCDetails表示关闭了GC详情输出key-value类型公式-XX:属性key属性value案例-XX:属性metaspace2000000设置Java元空间的值为2000000。动手实验 3 - 查看参数是否开启本实验主要讲解如下内容查看运行的 Java 程序 PrintGCDetails 参数是否开启编写一个一直运行的 Java 程序查看该应用程序的进程 id查看该进程的 GCDetail 参数是否开启在 WebIDE 上右键单击菜单选择 New File 创建新文件New File创建文件名为 demoXXparam.javademoXXparam.java在 WebIDE 上编写 demoXXparam.javapublic class demoXXparam {    public static void main(String[] args) throws InterruptedException {        System.out.println(hello XX params);        Thread.sleep(Integer.MAX_VALUE);    }}在 WebIDE 的控制台窗口编译 demoXXparam.java 代码javac demoXXparam.java 编译代码编译之后会在当前文件夹产生我们所编写的  demoXXparam 类的 demoXXparam.class字节码文件生产Class文件在 WebIDE 上运行 demoXXparam 代码java demoXXparam运行Java程序输出hello XX params在 WebIDE 中新开一个控制台窗口Terminal-New Terminal开启新控制台窗口查看所有的运行的java程序-l 表示打印出class文件的包名jps -ljps发现demoXXparam进程的id为 518查看 demoXXparam 程序是否开启了PrintGCDetails这个参数PrintGCDetails  在发生垃圾回收时打印内存回收日志并在进程退出时输出当前内存各区域分配情况jinfo -flag PrintGCDetails 518jinfo结果如下-XX:-PrintGCDetails上面提到  -号表示关闭所以当前 demo 程序没有开启 PrintGCDetails参数。动手实验 4  - 开启参数在 WebIDE 控制台强制退出demoXXparam程序ctrl  c然后清理屏幕clear然后以参数 -XX:PrintGCDetails 运行 demoXXparam 程序java -XX:PrintGCDetails demoXXparam实验 4输出hello XX params查看demoXXparam进程的 id进程 id可以看到demoXXparam进程 id 为 1225查看 demoXXparam 的配置参数 PrintGCDetails打开一个新的控制台窗口执行以下命令来查看进程为 1225 的 PrintGCDetails参数是否开启jinfo -flag PrintGCDetails 1225PrintGCDetails 参数可以看到PrintGCDetails是开启的号表示开启。动手实验 5 - Key-Value 类型参数值查看元空间的值jinfo -flag MetaspaceSize 526MetaspaceSize 大小由此可以得出元空间的大小为 21 M。设置元空间的值为 128 Mjava -XX:MetaspaceSize128m demoXXparam   查看元空间的大小    jinfo -flag MetaspaceSize 1062调整元空间大小最常见的 -Xms 和 -Xmx 属于哪种参数-Xms参数代表-XX:InitialHeapSize 初始化堆内存(默认只会用最大物理内存的64分1)-Xmx:参数代表-XX:MaxHeapSize 大堆内存(默认只会用最大物理内存的4分1)起了别名但还是属于XX参数。动手实验 6 - 设置 -XX:InitialHeapSize 和 -XX:MaxHeapSize 的值。java -XX:InitialHeapSize200m demoXXparam或者java -Xms200m demoXXparam查看 InitialHeapSize 参数的值大小为 200 M。设置 InitialHeapSizejava -XX:MaxHeapSize200M demoXXparam或者java -Xmx200m demoXXparam查看 MaxHeapSize 参数的值大小为 200 M。设置 MaxHeapSize扩展查看 Java 程序已设置的所有参数值jinfo -flags markNon-Defalut VM flags 代表参数类型是JVM自带的参数。Command line 代表是用户自定义的参数如何查看出厂设置和自定义设置的XX配置项动手实验 7 - 查看出厂默认设置的所有XX配置项java -XX:PrintFlagsInitial -version PrintFlagsInitial动手实验 8 - 查看 JVM 当前所有XX配置项java -XX:PrintFlagsFinal -version PrintFlagsFinal我们可以看到几个关键信息[Global flags]全局参数如果自定义修改了某个应用的参数并不会修改全局参数比如之前我们修改了MetaspaceSize为128m但列表里面还是21m。Global flags:参数已被修改如下图所示InitialHeapSize初始化堆内存参数已修改为264241152总结如下出厂设置和自定义参数设置动手实验 9 - 运行程序时打印XX配置选项java -XX:PrintFlagsFinal -XX:InitialHeapSize150M demoXXparam可以看到修改后的值为 157286400(150 M)运行程序时打印XX配置选项动手实验 10 - 查看 JVM 自动配置的或者用户手动设置的XX选项(非应用程序的)java -XX:PrintCommandLineFlags -version会打印出如下参数JVM 自动配置的XX选项实验总结本次用实验学习了如何查看基本参数、X参数、XX参数和设置XX参数。以及用好jps和jinfo工具来查看进程和设置参数。JVM性能调优还有很多要讲的一篇是讲不完的后面有机会继续用实验的形式来分享。往期资源  需要请自取Java基础核心知识大总结.pdf 下载68道C语言/C常见面试题(含答案)下载Java后端开发学习路线知识点总结前端开发学习路线知识点总结C/C开发(后台)学习路线知识点总结嵌入式开发学习路线知识点总结每天进步一点点慢一点才能更快下篇见。