zoukankan      html  css  js  c++  java
  • JVM参数

    前面已经提到过很多JVM的参数了,这节再简单汇总下,以及部分不常用的参数。
    Java启动参数共分为三类:

    • 标准参数(-):所有的JVM实现都必须实现这些参数的功能,而且向后兼容,如 -version、-classpath
    • 非标准参数(-X):默认jvm实现这些参数的功能,但是并不保证所有jvm实现都满足,且不保证向后兼容,如 -Xms、-Xmx
    • 非Stable参数(-XX):此类参数各个jvm实现会有所不同,将来可能会随时取消,需要慎重使用,如 -XX:UseParNewGC、-XX:MetaspaceSize

    1、JVM标准参数(-)
    通过 java -help 命令可以看到JVM的标准参数

    2、JVM非标准参数(-X)
    通过 java -X 命令可以看到JVM非标准参数

    常用参数:

    3、JVM非Stable参数(-XX)
    JVM非Stable参数分为三类:

    • 功能开关参数:一些功能的开关,用于改变jvm的一些基础行为
    • 性能调优参数:用于jvm的性能调优
    • 调试参数:一般用于打开跟踪、打印、输出等jvm参数,用于显示jvm更加详细的信息

    注意:带有加号“+”、减号“-”的参数一般为开关参数,加号就是启用,减号就是禁用,如 -XX:+/-UseAdaptiveSizePolicy。不带加减号的就需要通过等号“=”带上参数值,如 -XX:SurvivorRatio=8。
    可以通过设置 -XX:+PrintFlagsFinal 在启动时打印所有JVM的参数及其值。
    1)功能开关参数
    ① 垃圾回收器相关参数

    ② 其它的一些参数

    2)性能调优参数

    3)调试参数

    4、即时编译调优参数
    类初始化完成后,类在调用执行过程中,执行引擎会把字节码转为机器码,然后在操作系统中才能执行。在字节码转换为机器码的过程中,虚拟机中还存在着一道编译,那就是即时编译。最初,虚拟机中的字节码是由解释器( Interpreter )完成编译的,当虚拟机发现某个方法或代码块的运行特别频繁的时候,就会把这些代码认定为“热点代码”。为了提高热点代码的执行效率,在运行时,即时编译器(JIT)会把这些代码编译成与本地平台相关的机器码,并进行各层次的优化,然后保存到内存中。如果没有 JIT 即时编译,每次运行相同的代码都会使用解释器编译。
    与编译优化有关的主要有即时编译器的选择、热点探测计数阀值的优化、方法内联、逃逸分析、锁消除、标量替换等,一般来说也不用对编译进行调优,这里就不展开说了,下面先列举下编译优化相关的一些JVM参数。

    郭慕荣博客园
  • 相关阅读:
    jquery ajax 上传文件
    动态sql语句,非存储过程,如何判断某条数据是否存在,如果不存在就添加一条
    VS2017中的nuget还原失败或超时的解决方案
    查找datatable 中的重复记录(只查询一个字段)
    SQL Server 删除重复记录,只保留一条记录
    图床_typora设置.md
    各种源更改.md
    linux手机投屏.md
    firefox设置.md
    Manjaro初次.md
  • 原文地址:https://www.cnblogs.com/jelly12345/p/14858279.html
Copyright © 2011-2022 走看看