Eclipse Java 开发常见的虚拟内存设置及位置
1、Eclipse 内存使用设置。
修改eclipse根目录下的eclipse.ini文件
-vmargs //虚拟机设置
-Xms40m//初始值
-Xmx256m//最大值
-XX:PermSize=128M //非堆内存设置,初始值
-XX:MaxPermSize=256M//最大值
-vmargs -Xms128M -Xmx512M -XX:PermSize=256M -XX:MaxPermSize=512M
-vmargs 是指设置java 虚拟机 JVM的参数。所以后面跟的其实就是JVM的参数。首先了解一下JVM内存管理的机制,便于理解每个参数的含义:
堆(Heap)和非堆(Non-heap)内存 。Java 虚拟机具有一个堆,堆是运行时数据区域,所有类实例和数组的内存均从此处分配。堆是在 Java 虚拟机启动时创建的。 在JVM中堆之外的内存称为非堆内存(Non-heap memory), 可以看出JVM主要管理两种类型的内存:堆和非堆。
堆内存分配:
-Xms 指定JVM初始分配的内存, 默认是物理内存的1/64。
-Xmx 指定JVM最大分配的内存,默认是物理内存的1/4。
默认空余堆内存小于 40%时,JVM就会增大堆直到-Xmx的最大限制;空余堆内存大于70%时,JVM会减少堆直到-Xms的最小限制。因此服务器一般设置-Xms、 -Xmx相等以避免在每次GC 后调整堆的大小。
非堆内存分配:
-XX:PermSize 设置非堆内存初始值,默认是物理内存的1/64;
-XX:MaxPermSize 设置最大非堆内存的大小,默认是物理内存的1/4。
--launcher.XXMaxPermSize 和 -XX:MaxPermSize 一样的效果。
2、JVM内存设置
打开eclipse window-preferences-Java -Installed JREs -Edit -Default VM Arguments
在VM自变量中输入:-Xmx128m -Xms64m -Xmn32m –Xss16m
3, Tomcat内存设置
打开Tomcat根目录下的bin文件夹,编辑catalina.bat
修改为:set JAVA_OPTS= -Xms256m -Xmx512m