在设置内存这部分:主要针对堆内存(Heap)和非堆内存(Non-heap)进行设置
(1)堆(Heap)和非堆(Non-heap)内存
按照官方的说法:“JVM具有一个共享的JAVA堆,堆是运行时数据区域,所有类实例和数组的内存均从此处分配。堆是在 JVM启动时创建的。”
在JVM中堆之外的内存称为非堆内存(Non-heap memory)。
可以看出JVM主要管理两种类型的内存:堆和非堆。简单来说堆就是Java代码可用的内存,是留给开发人员使用的;非堆就是JVM留给自己用的,所以方法区、JVM内部处理或优化所需的内存(如JIT编译后的代码缓存)、每个类结构(如运行时常数池、字段和方法数据)以及方法和构造方法的代码都在非堆内存中。
路径:
Tomcat是依赖于JVM的,所以Tomcat的使用内存配置实质上是JVM的内存配置。
在/bin目录下的catalina.bat可以直接通过Tomcat设置JVM内存参数,windows下打开catalina.bat文件;
(2)设置:堆内存参数
-Xms(size) —–JVM初始化堆的大小
-Xmx(size) —–JVM堆的最大值 实际参数大小根据服务器配置或者项目具体设置
(3)设置:非堆内存(PermSize)参数
-server —– 启用jdk的server版;
-XX: PermSize —–内存永久保留区域
-XX: MaxPermSize —–内存最大永久保留区域