【JVM】Java虚拟机调优 配置启动参数

一、配置方式

options - JVM启动参数。 配置多个参数的时候,参数之间使用空格分隔

  • 参数命名: 常见为 -参数名

  • 参数赋值: 常见为 -参数名=参数值 | -参数名:参数值

二、内存参数

-Xms:初始堆大小,JVM启动的时候,给定堆空间大小。

-Xms3750m,设置JVM初始内存为3750m。此值可以设置与-Xmx相同,以避免每次垃圾回收完成后JVM重新分配内存。

-Xmx:最大堆大小,JVM运行过程中,如果初始堆空间不足的时候,最大可以扩展到多少。

-Xmx3750m:设置JVM最大可用内存为3750M。

-Xmn:设置年轻代大小。

整个堆大小 = 年轻代大小 + 老年代大小 + 持久代大小。持久代一般固定大小为64m,所以增大年轻代后,将会减小年老代大小。此值对系统性能影响较大,Sun官方推荐配置为整个堆的3/8。

-Xmn2g:设置年轻代大小为2G。

-Xss: 设置每个线程的Java栈大小。

JDK5.0以后每个线程Java栈大小为1M,以前每个线程堆栈大小为256K。根据应用的线程所需内存大小进行调整。在相同物理内存下,减小这个值能生成更多的线程。但是操作系统对一个进程内的线程数还是有限制的,不能无限生成,经验值在3000~5000左右。

-Xss128k:设置每个线程的堆栈大小为128k。

-XX:NewSize=n:设置年轻代大小。

-XX:NewRatio=n:设置年轻代(包括Eden和两个Survivor区)与年老代的比值。

比如设置为4,则年轻代与年老代所占比值为1:4,年轻代占整个堆栈的1/5

-XX:SurvivorRatio=n:年轻代中Eden区与两个Survivor区的比值。

注意Survivor区有两个。如:3,表示Eden:Survivor=3:2,一个Survivor区占整个年轻代的1/5。

-XX:MaxPermSize=n:设置永久代大小

-XX:MaxPermSize=16m:设置持久代大小为16m。

相关推荐
程序员弘羽2 分钟前
C++ 第四阶段 内存管理 - 第二节:避免内存泄漏的技巧
java·jvm·c++
好名字更能让你们记住我2 小时前
Linux多线程(十二)之【生产者消费者模型】
linux·运维·服务器·jvm·windows·centos
心平愈三千疾11 小时前
通俗理解JVM细节-面试篇
java·jvm·数据库·面试
我不会写代码njdjnssj11 小时前
网络编程 TCP UDP
java·开发语言·jvm
第1缕阳光11 小时前
Java垃圾回收机制和三色标记算法
java·jvm
亲爱的非洲野猪10 天前
一次性理解Java垃圾回收--简单直接方便面试时使用
java·jvm·面试
Ray_199710 天前
C++二级指针的用法指向指针的指针(多级间接寻址)
开发语言·jvm·c++
转码的小石10 天前
Java面试复习指南:并发编程、JVM、Spring框架、数据结构与算法、Java 8新特性
java·jvm·数据结构·spring·面试·并发编程·java 8
转码的小石10 天前
Java面试复习:Java基础、面向对象编程、JVM原理、Spring框架解析
java·jvm·spring·面试·java基础·面向对象·复习
MuYiLuck10 天前
【JVM|内存结构】第一天
jvm