一、常见的参数种类(配置内存)
(1)配置堆区的参数:-Xms、-Xmx、-Xmn、-XX:newSize、-XX:MaxnewSize
(2)配置非堆区的参数:-XX:PermSize、-XX:MaxPermSize
二、堆区参数配置
(1)-Xms:Java虚拟机堆区内存初始内存分配的大小,按照实际情况进行分配(一般为操作系统可用内存的1/64大小)。
(2)-Xmx:Java虚拟机堆区内存可被分配的最大上限(一般为操作系统可用内存的1/4大小)。
-Xms、-Xmx两个参数会配置相同的值(优点:能够在Java垃圾回收机制清理完堆区后不需要重新分隔计算堆区的大小而浪费资源)。
(3)-XX:newSize: 新生代初始化内存的大小(注意:该值需要小于-Xms的值)。
(4)-XX:MaxnewSize: 新生代可被分配的内存的最大上限(注意:该值需要小于-Xmx的值)。
(5)-Xmn: 对-XX:newSize、-XX:MaxnewSize两个参数同时进行配置(注意:JDK1.4之后才有该参数)。
三、非堆区参数配置
(1)-XX:PermSize:非堆区初始化内存分配大小。
(2)-XX:MaxPermSize:非堆区分配的内存的最大上限。
启动springboot项目并分配内存 (分配4G内存)
java -jar -Duser.timezone=Asia/Shanghai -Xms4096m -Xmx4096m -Xmn256m -XX:PermSize=256M -XX:MaxPermSize=512M -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=./oom.hprof xxx.jar