程序员求职经验分享与学习资料整理平台

网站首页 > 文章精选 正文

java面试题|JVM调优常用JVM参数代码实例简介

balukai 2025-04-23 21:59:30 文章精选 3 ℃

JVM(Java Virtual Machine)启动参数用于配置Java应用程序的运行时环境,包括内存管理、垃圾回收(GC)算法、性能调优和日志记录等。


# JVM启动参数,不换行格式

# 设置堆内存最大值和初始值

-Xmx4g -Xms4g

# 指定垃圾回收算法为G1 GC,并设置最大GC停顿时间为50毫秒

-XX:+UseG1GC -XX:MaxGCPauseMillis=50

# 指定垃圾回收并行线程数

-XX:ParallelGCThreads=4

# 打印详细的垃圾回收日志,并包含日期时间戳

-XX:+PrintGCDetails -XX:+PrintGCDateStamps

# 指定垃圾回收日志文件路径

-Xloggc:gc.log

# 指定Meta区的最大值(用于存储类的元数据)

-XX:MaxMetaspaceSize=2g

# 设置单个线程栈的大小

-Xss1m

# 当堆内存溢出时,自动进行Dump,并指定Dump文件路径

-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/usr/local/

# 指定默认的连接超时时间和读取超时时间(单位为毫秒)

-Dsun.net.client.defaultConnectTimeout=2000

-Dsun.net.client.defaultReadTimeout=2000

# 指定时区,例如设置为东八区

-Duser.timezone=GMT+08

# 设置默认的文件编码为UTF-8

-Dfile.encoding=UTF-8

# 指定随机数熵源,使用非阻塞的伪随机数生成器

-Djava.security.egd=file:/dev/./urandom

参数解释

  • -Xmx4g -Xms4g:-Xmx设置Java堆的最大值,-Xms设置Java堆的初始值。这里都设置为4GB。
  • -XX:+UseG1GC -XX:MaxGCPauseMillis=50:启用G1垃圾收集器,并尝试将最大GC停顿时间控制在50毫秒以内。
  • -XX:ParallelGCThreads=4:设置垃圾回收时使用的并行线程数。
  • -XX:+PrintGCDetails -XX:+PrintGCDateStamps:打印详细的GC日志,并包含日期时间戳,有助于分析GC行为。
  • -Xloggc:gc.log:指定GC日志的输出文件。
  • -XX:MaxMetaspaceSize=2g:设置Metaspace(用于存储类的元数据)的最大大小。
  • -Xss1m:设置每个线程的栈大小为1MB。
  • -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/usr/local/:当堆内存溢出时,自动进行堆内存Dump,并指定Dump文件的存储路径。
  • 连接超时和读取超时:用于设置网络连接的默认超时时间,有助于控制网络请求的性能。
  • -Duser.timezone=GMT+08:设置JVM的时区为东八区。
  • -Dfile.encoding=UTF-8:设置默认的文件编码为UTF-8,确保正确处理国际化字符。
  • -Djava.security.egd=file:/dev/./urandom:指定随机数生成器的熵源,使用/dev/./urandom可以避免在某些系统上启动时的阻塞问题。

Tags:

最近发表
标签列表