JAVA和Nginx 教程大全

网站首页 > 精选教程 正文

面试题:常用的JVM启动参数有哪些?

wys521 2024-11-01 15:14:40 精选教程 25 ℃ 0 评论

常用的JVM启动参数可以分为几类,包括标准参数(-)、非标准参数(-X)、非标准参数(-XX)等。这些参数可以帮助调整JVM的性能、内存使用、垃圾回收策略等方面。下面是一些常用的JVM启动参数:

1. 堆内存设置

-Xms<size>:设置初始堆内存大小。

-Xmx<size>:设置最大堆内存大小。

-XX:NewSize=<size>:设置年轻代初始大小。

-XX:MaxNewSize=<size>:设置年轻代最大大小。

-XX:SurvivorRatio=<ratio>:设置Eden区与Survivor区的比例。

-XX:MaxTenuringThreshold=<threshold>:设置对象晋升到老年代的年龄阈值。

2. 垃圾回收器设置

-XX:+UseSerialGC:使用串行垃圾回收器。

-XX:+UseParallelGC:使用并行垃圾回收器。

-XX:+UseConcMarkSweepGC:使用CMS垃圾回收器。

-XX:+UseG1GC:使用G1垃圾回收器。

-XX:ParallelGCThreads=<num>:设置并行垃圾回收器的线程数。

3. 堆外内存设置

-XX:MaxDirectMemorySize=<size>:设置堆外内存的最大值。

4. 线程栈设置

-Xss<size>:设置每个线程的栈大小。

5. 日志和调试

-XX:+PrintGCDetails:打印详细的GC日志。

-XX:+PrintGCDateStamps:打印GC日志的时间戳。

-XX:+PrintHeapAtGC:在GC前后打印堆信息。

-verbose:gc:打印GC的基本信息。

-Xloggc:<file>:指定GC日志文件路径。

6. 性能调优

-XX:+AggressiveOpts:启用激进的优化。

-XX:+UseFastAccessorMethods:使用更快的字段访问方法。

-XX:+UseCompressedOops:启用对象指针压缩(仅64位JVM)。

-XX:+UnlockExperimentalVMOptions:解锁实验性的JVM选项。

7. 类加载

-D<property>=<value>:设置系统属性。

-XX:+UseSplitVerifier:使用分割验证器。

-XX:+UseFastClassPathParser:使用更快的类路径解析器。

8. 其他

-XX:+HeapDumpOnOutOfMemoryError:在出现OutOfMemoryError时生成堆转储文件。

-XX:HeapDumpPath=<path>:指定堆转储文件的路径。

-XX:ErrorFile=<path>:指定错误日志文件的路径。

-XX:OnOutOfMemoryError='<command>':指定在出现OutOfMemoryError时执行的命令。

示例

以下是一个使用G1垃圾回收器并设置堆内存的示例:

java -Xms1g -Xmx4g -XX:+UseG1GC -XX:ParallelGCThreads=4 -XX:MaxGCPauseMillis=200 -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintHeapAtGC -XX:+UseStringDeduplication -jar myapp.jar

这里设置了初始堆内存为1GB,最大堆内存为4GB,使用G1垃圾回收器,并设置了并行GC线程数为4,最大暂停时间为200毫秒,同时开启了GC日志的详细输出。

这些参数可以根据具体的应用场景和性能需求进行调整。

【温馨提示】

点赞+收藏文章,关注我并私信回复【面试题解析】,即可100%免费领取楼主的所有面试题资料!

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表