在运行 Java 应用程序时,可以通过 JVM 的命令行参数来配置 JVM 的行为。以下是一些 JVM 常用的命令行参数:
堆内存设置:
-Xms<size>:设置 JVM 初始堆大小。-Xmx<size>:设置 JVM 最大堆大小。-Xmn<size>:设置新生代大小。-XX:MaxPermSize=size:设置永久代(Java 8 及之前版本)或元空间(Java 8 及之后版本)大小。
垃圾回收相关:
-XX:+UseSerialGC:使用串行垃圾回收器。-XX:+UseParallelGC:使用并行垃圾回收器。-XX:+UseConcMarkSweepGC:使用 CMS 垃圾回收器。-XX:+UseG1GC:使用 G1 垃圾回收器。
性能调优:
-XX:+AggressiveOpts:启用侵略性优化。-XX:+OptimizeStringConcat:优化字符串拼接操作。-XX:+UseCompressedOops:启用压缩指针。
诊断和监控:
-verbose:gc:打印 GC 日志。-Xloggc:<filename>:将 GC 日志输出到指定文件。-XX:+HeapDumpOnOutOfMemoryError:在 OutOfMemoryError 发生时生成堆转储文件。
调试相关:
-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=<port>:启用远程调试。
其他常用参数:
-D<property>=<value>:设置系统属性。-server:使用服务器模式。