RCP JVM和eclipse内存的理解

本文详细介绍了JVM中的堆内存和非堆内存的作用与管理方式,并提供了如何在Eclipse环境中进行JVM内存配置的方法,包括通过eclipse.ini文件和Eclipse的首选项设置。此外,还介绍了在生产环境中如何合理配置JVM内存。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

[b]一 基本说明[/b]
在JVM中,总体上分2块内存区,默认空余堆内存小于 40%时,JVM就会增大堆直到-Xmx的最大限制;空余堆内存大于70%时,JVM会减少堆直到-Xms的最小限制。
1)堆内存(Heap memory):堆是运行时数据区域,所有类实例和数组的内存均从此处分配,是Java代码可及的内存,是留给开发人员使用的.
2)非堆内存(Non-heap memory):在JVM中堆之外的内存,非堆就是JVM留给 自己用的,所以方法区、JVM内部处理或优化所需的内存(如JIT编译后的代码缓存)、每个类结构(如运行时常数池、字段和方法数据)以及方法和构造方法 的代码都在非堆内存中.
JVM有4个常用参数,在使用javaxxx命令中,添加下面的参数,既可改变应用的内存.否则在内存不足的情况下,会抛出outOfMemoryError异常.
-Xms512M //最小堆内存,默认是物理内存的1/64
-Xmx512M //最大堆内存,默认是物理内存的1/4
-XX:PermSize=64M //最小非堆内存,默认是物理内存的1/64
-XX:MaxPermSize=128M //最大非堆内存,默认是物理内存的1/4

[b]二 eclipse中,内存设置[/b]
方法1:修改eclipse.ini
-vmargs
-Xms512M
-Xmx512M
-XX:PermSize=64M
-XX:MaxPermSize=128M

方法2:对应在Eclipse中的设置为:window->preferences->JAVA->installed JREs,在Default VM Arguments中增加:-Xmx512M (也可以添加其他参数如-Xms512M -XX:PermSize=64M -XX:MaxPermSize=128M)

[b]三 生产环境解决方案[/b]
1)服务器一般设置-Xms、-Xmx相等以避免在每次GC后调整堆的大小
2)-Xmx和-XX:MaxPermSize的总和,不能大于服务器物理内存大小,而且有些内存被硬件使用,所以总和要在可分配内存范围内.
3)实际运行的结果可以通过Eclipse中help->Installation Details->Configuration里面查看Eclipse运行情况
4)visualvm
一款很好用的jvm分析工具
下载地址:https://visualvm.dev.java.net/
5)以jdk环境运行eclipse
1、在eclipse.ini中添加VM启动参数,制定eclipse启动使用的vm,修改后的文件内容如下
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
[b]-vm
D:\Program Files (x86)\Java\jdk1.6.0_21\bin\javaw.exe [/b]
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms512m
-Xmx1024m
-XX:PermSize=256M
-XX:MaxPermSize=256M

顺序一定要对

2、创建一快捷方式,起始目标为:"D:\***\eclipse.exe" -vm "D:\Program Files (x86)\Java\jdk1.6.0_21\bin\javaw.exe".

其实我感觉在ini文件中写绝对路径不是一种很好的方式,但是使用相对路径和环境变量%JAVA_HOME%却会找不到jdk,一旦我将eclipse移动到别的地方,这段ini还必须要重新配置下。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值