📜  常用的JVM参数(1)

📅  最后修改于: 2023-12-03 15:25:31.278000             🧑  作者: Mango

常用的JVM参数

JVM参数是为了控制JVM所使用的内存,线程,类加载等方面的参数。本文将介绍常用的JVM参数并加以说明。

堆内存
-Xms

此参数用于设置JVM的初始堆大小。例如,-Xms512m设置初始堆大小为512MB。

-Xmx

此参数用于设置JVM的最大堆大小。例如,-Xmx1024m设置最大堆大小为1GB。需要注意的是,不应将最大堆大小设置为系统可用内存的最大值,以避免系统因内存不足而崩溃。

-XX:NewSize

此参数用于设置年轻代的初始大小。例如,-XX:NewSize=32m设置年轻代初始大小为32MB。

-XX:MaxNewSize

此参数用于设置年轻代的最大大小。例如,-XX:MaxNewSize=64m设置年轻代最大大小为64MB。

线程
-XX:ThreadStackSize

此参数用于设置线程堆栈大小。例如,-XX:ThreadStackSize=1m设置线程堆栈大小为1MB。

-XX:ParallelGCThreads

此参数用于设置并行垃圾回收的线程数。例如,-XX:ParallelGCThreads=4设置并行垃圾回收的线程数为4个。

类加载
-XX:+TraceClassLoading

此参数用于追踪类的加载情况。例如,-XX:+TraceClassLoading可以打印出类的加载信息。

-XX:PermSize

此参数用于设置永久代初始大小。例如,-XX:PermSize=16m设置永久代初始大小为16MB。

-XX:MaxPermSize

此参数用于设置永久代空间的最大大小。例如,-XX:MaxPermSize=64m设置永久代空间的最大大小为64MB。需要注意的是,JDK8及以上版本已移除永久代,改为使用元空间。

性能
-XX:CompileThreshold

此参数用于设置JIT编译器编译方法的阈值。例如,-XX:CompileThreshold=1000设置JIT编译器编译方法的阈值为1000。

-XX:+AggressiveOpts

此参数用于激活侵略性优化,以提高JVM的性能。

-XX:+UseCompressedOops

此参数用于启用压缩指针。当JVM运行在64位操作系统上时,压缩指针可以减小对象头的大小,从而减小堆内存的使用。

调试
-Xdebug

此参数用于开启JVM的调试功能。

-Xrunjdwp

此参数用于与调试器建立连接。例如,-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005可以与调试器建立基于socket传输的连接,端口号为5005,不挂起JVM。

参考
  1. JVM参数列表
  2. Java 打开大文件OutOfMemoryError 解决方案
  3. JVM Tuning, High Performance JVMs