外贸响应式网站,适合设计师看的设计网站,wordpress站点网址,wordpress论坛查看用户密码JVM 参数类型大致分为以下几类#xff1a;
标准参数#xff08;-#xff09;#xff1a;保证在所有的 JVM 实现都支持的参数非标准参数#xff08;-X#xff09;#xff1a;通用的#xff0c;特定于 HotSpot 虚拟机的参数#xff0c;这些参数不保证在所有 JVM 实现中…JVM 参数类型大致分为以下几类
标准参数-保证在所有的 JVM 实现都支持的参数非标准参数-X通用的特定于 HotSpot 虚拟机的参数这些参数不保证在所有 JVM 实现中被支持且可能会更改高级运行时参数-XX此类参数不建议随意使用这些参数用于调整 HotSpot VM 的特定区域不保证所有的 JVM 实现都支持并且可能会发生改变
参数分为布尔类型和值类型布尔类型被用于启用默认禁用的特性或者禁用默认启动的特性这类参数不用指定值使用 号来启动参数如 -XX:OptionName使用 - 号来禁用布尔如 -XX:-OptionName。
值类型的参数可以使用 或者 来分隔参数名和参数值或者值直接跟在参数后面如果参数值要指定字节大小你可以不使用后缀或者使用 k/K 来表示 KB使用 m/M 来表示 MB使用 g/G 来表示 GB如果参数值要指定百分比你需要使用 0-1 的数字比如 0.25 表示 25%。
标准参数
标准参数可以理解为 java 命令的可选项可以使用 java 命令查看标准参数 标准参数的含义
参数含义-classpath/-cp类搜索路径可以使用目录或者 zip/jar 文件的路径多个用 分隔-Dnamevalue设置系统属性-client设置 jvm 使用 client 模式特点是启动速度比较块但运行时性能和内存管理效率不高通常用于客户端应用程序或 PC 应用开发和调试-server设置 jvm 使用 server 模式默认就是 server 模式特点是启动速度比较慢但运行时性能和内存管理效率很高适用于生产环境-verbose:[class|gc|jni]启动详细输出-X输出非标准参数的帮助文档
非标准参数
非标准参数是特定于 HotSpot VM 的通用参数可以使用 java -X 命令查看不同 JDK 版本可能会有不同。 非标准参数的含义
参数名含义-Xint以仅解释模式运行应用程序。对本地代码的编译被禁用所有字节码都由解释器执行。JIT 编译器提供的性能优势在这种模式下并不存在-Xmixed由解释器执行所有字节码hot method 除外后者被由 JIT 编译成本地代码-Xincgc开启增量 gc默认为关闭这有助于减少长时间 GC 时应用程序出现的停顿但由于可能和应用程序并发执行所以会减低 CPU 对应用的处理能力-Xloggc:file与 -verbose:gc 功能类似只是将每次 GC 事件的相关情况记录到一个文件中文件的位置最好在本地以避免网络的潜在问题。-Xms设置堆的初始容量和最小容量它必须时 1024 的倍数且不能小于 1M需要注意的是 -XX:InitalHeapSize 也可以指定堆初始容量如果这两个都出现在命令行中则以最后一个参数为准-Xmx指定堆的最大容量它必须时 1024 的倍数且不能小于 2M它等价于 -XX:MaxHeapSize 参数-Xss设置线程堆栈的容量默认值依赖于操作系统它类似于 -XX:ThreadStackSize-Xmn新生代的初始容量和最大容量此处的大小指的是 eden2*surivor sapce你也可以使用 -XX:NewSize 设置初始容量使用 -XX:MaxNewSize 设置最大容量如果都出现在命令行中则以最后一个参数为准
高级运行时参数
这些参数控制 HotSpot VM 的运行时行为。
参数名含义-XX:MaxDirectMemorySizesize设置 NIO 中直接内存的最大空间可以使用单位如 k、m、g默认情况下为 0这表示 JVM 自动选择 NIO 直接内存的大小-XX:PrintCommandLineFlags打印在命令行中指定的参数-XX:ThreadStackSizesize设置 Java 线程堆栈大小-XX:HeapDumpOnOutOfMemoryError当出现 OOM 时在当前目录生成堆转储文件默认关闭-XX:HeapDumpPathpath当 -XX:HeapDumpOnOutOfMemoryError 启用后生成堆转储文件的路径默认情况下在当前目录下生成文件名为 java_pid${pid}.hprof你可以自定义文件名-XX:HeapDumpPath/var/log/java/java_heapdump.hprof-XX:LogFilepath设置 HotSpot 的日志文件路径默认生成在当前工作目录名为 hotspot.log-XX:InitialHeapSizesize设置堆的初始容量-XX:MaxHeapSizesize设置堆的最大容量-XX:MaxNewSizesize设置新生代的最大容量-XX:PrintGC打印 GC 事件默认禁用-XX:PrintGCDetails打印 GC 事件的详细信息默认禁用-XX:SurvivorRatioratio设置 eden/survivor 的比值默认值为 8-XX:UseConcMarkSweepGC使用 GMS 垃圾收集器收集老年代-XX:UseG1GC使用 G1 垃圾收集器-XX:UseParallelGC使用 parallel scavenge 垃圾收集器-XX:UseParallelOldGCfull gc 使用 parallel 垃圾收集器默认禁用当启用 -XX:UseParallelGC 时自动启用-XX:UseParNewGC在新生代中使用 parallel thread 垃圾收集器默认禁用当启用 -XX:UseConcMarkSweepGC 时自动启用-XX:UseSerialGC使用 serial 垃圾收集器
参考 https://docs.oracle.com/javase/8/docs/technotes/tools/unix/java.html#BABDJJFI
https://juejin.cn/post/7033554940677062670