原文出处: http://www.javatang.com/archives/2007/12/06/3154252.html
作者: Jet Mah from Java堂
声明: 可以非商业性任意转载, 转载时请务必以超链接形式标明文章原始出处、作者信息及此声明!
MyEclipse功能非常的强大,现在基本是使用Eclipse开发JavaEE的必备插件了。但是巨大的MyEclipse也导致Eclipse启动的速度加慢,另外开发的过程中有时候容易造成界面“假死”的状况。
今天介绍几个优化MyEclipse的方法
1. 加大JVM的非堆内存,具体的做法和原因参考我前一篇文章《由MyEclipse内存不足谈谈JVM内存》
2. 去除不需要加载的模块
一个系统20%的功能往往能够满足80%的需求,MyEclipse也不例外,我们在大多数时候只需要20%的系统功能,所以可以将一些不使用的模块禁止加载启动。通过Windows - Preferences打开配置窗口,依次选择左侧的General - Startup and Shutdown,这个时候在右侧就显示出了Eclipse启动时加载的模块,可以根据自己的实际情况去除一些模块。
3. 取消MyEclipse在启动时自动验证项目配置文件
默认情况下MyEclipse在启动的时候会自动验证每个项目的配置文件,这是一个非常耗时的过程,可以在Preferences窗口依次选择MyEclipse - Validation,然后在右侧的Validator列表中只保留 Manual 项就可以了。如果需要验证的时候只需要选中文件,然后右键选择 MyEclipse - Run Validation就可以了。
4、如果没有进行设置的话,在使用MyEclipse的经常出现如下图所示内存不足的提示。
提示中说的很明白:“MyEclipse has detected that less than 5% of the 64MB of Perm Gen (Non-heap memory) space remains.”意思是说当前只有小于5%的非堆内存是空闲的。所以我们只要将这个值设置大一些就可以了。
提示中给出了设置的参数:
1.-vmargs -Xms128M -Xmx512M -XX:PermSize=64M -XX:MaxPermSize=128M
这里有几个问题:
1. 各个参数的含义什么?
2. 为什么有的机器我将-Xmx和-XX:MaxPermSize都设置为512M之后Eclipse可以启动,而有些机器无法启动?
3. 为何将上面的参数写入到eclipse.ini文件Eclipse没有执行对应的设置?
下面我们一一进行回答
1. 各个参数的含义什么?
参数中-vmargs的意思是设置JVM参数,所以后面的其实都是JVM的参数了,我们首先了解一下JVM内存管理的机制,然后再解释每个参数代表的含义。
•堆(Heap)和非堆(Non-heap)内存
按照官方的说法:“Java 虚拟机具有一个堆,堆是运行时数据区域,所有类实例和数组的内存均从此处分配。堆是在 Java 虚拟机启动时创建的。”“在JVM中堆之外的内存称为非堆内存(Non-heap memory)”。可以看出JVM主要管理两种类型的内存:堆和非堆。简单来说堆就是Java代码可及的内存,是留给开发人员使用的;非堆就是JVM留给自己用的,所以方法区、JVM内部处理或优化所需的内存(如JIT编译后的代码缓存)、每个类结构(如运行时常数池、字段和方法数据)以及方法和构造方法的代码都在非堆内存中。
•堆内存分配
JVM初始分配的内存由-Xms指定,默认是物理内存的1/64;JVM最大分配的内存由-Xmx指定,默认是物理内存的1/4。默认空余堆内存小于40%时,JVM就会增大堆直到-Xmx的最大限制;空余堆内存大于70%时,JVM会减少堆直到-Xms的最小限制。因此服务器一般设置-Xms、-Xmx相等以避免在每次GC 后调整堆的大小。
•非堆内存分配
JVM使用-XX:PermSize设置非堆内存初始值,默认是物理内存的1/64;由XX:MaxPermSize设置最大非堆内存的大小,默认是物理内存的1/4。
•JVM内存限制(最大值)
首先JVM内存限制于实际的最大物理内存(废话!呵呵),假设物理内存无限大的话,JVM内存的最大值跟操作系统有很大的关系。简单的说就32位处理器虽然可控内存空间有4GB,但是具体的操作系统会给一个限制,这个限制一般是2GB-3GB(一般来说Windows系统下为1.5G-2G,Linux系统下为2G-3G),而64bit以上的处理器就不会有限制了。
2. 为什么有的机器我将-Xmx和-XX:MaxPermSize都设置为512M之后Eclipse可以启动,而有些机器无法启动?
通过上面对JVM内存管理的介绍我们已经了解到JVM内存包含两种:堆内存和非堆内存,另外JVM最大内存首先取决于实际的物理内存和操作系统。所以说设置VM参数导致程序无法启动主要有以下几种原因:
1) 参数中-Xms的值大于-Xmx,或者-XX:PermSize的值大于-XX:MaxPermSize;
2) -Xmx的值和-XX:MaxPermSize的总和超过了JVM内存的最大限制,比如当前操作系统最大内存限制,或者实际的物理内存等等。说到实际物理内存这里需要说明一点的是,如果你的内存是1024MB,但实际系统中用到的并不可能是1024MB,因为有一部分被硬件占用了。
3. 为何将上面的参数写入到eclipse.ini文件Eclipse没有执行对应的设置?
那为什么同样的参数在快捷方式或者命令行中有效而在eclipse.ini文件中是无效的呢?这是因为我们没有遵守eclipse.ini文件的设置规则:
参数形如“项 值”这种形式,中间有空格的需要换行书写,如果值中有空格的需要用双引号包括起来。比如我们使用-vm C:\Java\jre1.6.0\bin\javaw.exe参数设置虚拟机,在eclipse.ini文件中要写成这样:
1.-vm
2.C:\Java\jre1.6.0\bin\javaw.exe
按照上面所说的,最后参数在eclipse.ini中可以写成这个样子:
1.-vmargs
2.-Xms128M
3.-Xmx512M
4.-XX:PermSize=64M
5.-XX:MaxPermSize=128M
实际运行的结果可以通过Eclipse中“Help”-“About Eclipse SDK”窗口里面的“Configuration Details”按钮进行查看。
另外需要说明的是,Eclipse压缩包中自带的eclipse.ini文件内容是这样的:
1.-showsplash
2.org.eclipse.platform
3.--launcher.XXMaxPermSize
4.256m
5.-vmargs
6.-Xms40m
7.-Xmx256m
其中–launcher.XXMaxPermSize(注意最前面是两个连接线)跟-XX:MaxPermSize参数的含义基本是一样的,我觉得唯一的区别就是前者是eclipse.exe启动的时候设置的参数,而后者是eclipse所使用的JVM中的参数。其实二者设置一个就可以了,所以这里可以把–launcher.XXMaxPermSize和下一行使用#注释掉。
分享到:
相关推荐
人力资源+大数据+薪酬报告+涨薪调薪,在学习、工作生活中,越来越多的事务都会使用到报告,通常情况下,报告的内容含量大、篇幅较长。那么什么样的薪酬报告才是有效的呢?以下是小编精心整理的调薪申请报告,欢迎大家分享。相信老板看到这样的报告,一定会考虑涨薪的哦。
迅雷
内容概要:本文介绍了一个基于Java的简单命令行学生管理系统。该项目包含了添加、查看、更新和删除学生的全部功能,并对每个部分的实现进行了详尽展示,包括关键源代码以及操作步骤指引。项目的主干由多个重要文件构成:Student.java 负责定义学生类及其属性访问器方法;StudentManager.java 实现对学生信息的操作处理逻辑,如创建、读取、更新、销毁(CRUD)等;而 Main.java 则用于执行主程序逻辑并初始化StudentManager实例,提供命令行交互环境以供用户执行相应操作。
one-api本地部署ollama+deepseek-r1
krpanodew,全景编辑器。一键生成全景图和连续前景图并生成场景。
基于Matlab 2021的两电平拓扑三相桥式逆变并网仿真:双环PI控制、SPWM调制与LCL滤波研究,基于Matlab2021的电压型三相桥式逆变并网仿真研究:双环PI控制、SPWM调制与LCL滤波器的应用,电压型三相桥式逆变并网仿真Matlab2021 电路采用两电平拓扑,采用双环PI控制, 变部分加设PLL锁相环, 采用SPWM调制,逆变器输出端加设LCL滤波器,并入电网。 可以得到逆变器输出端为三电平的线电压波形,滤波后可以得到对称三相电压、电流波形。 无需发,联系即可发邮件。 ,三相桥式逆变器;两电平拓扑;双环PI控制;电压型逆变;PLL锁相环;SPWM调制;LCL滤波器;电网并网;线电压波形。,Matlab 2021三相桥式逆变并网仿真:双环PI控制与LCL滤波器应用
纯电动汽车零部件建模机理与前后向仿真控制策略详解:聚焦BMS、再生制动及电机驱动扭矩策略,纯电动汽车零部件建模机理与前后向仿真控制策略详解:从Cruise到ADVISOR建模实践与能量流解析,纯电动汽车各零部件建模机理及BMS、再生制动和电机驱动扭矩策略,逻辑清晰公式明晰。 主要从前向和后向仿真两大类分别阐述建模机理和控制策略。 前向模型主要参考Cruise建模及相关文献,后向模型主要参考ADVISOR建模且对其自带的纯电动汽车模型进行注释分析。 现打包,包含文档、参考模型和参考文献等,适合学习纯电动汽车建模机理,整篇文档主要为公式和整车能量流走向 ,关键零部件建模; BMS; 再生制动; 电机驱动扭矩策略; 前向仿真建模; 后向仿真建模; 能量流走向; 公式明晰; 文档参考。,纯电动整车建模与控制策略解析:BMS、再生制动与电机驱动扭矩的深度研究
情人节html+css源码
基于Yolo系列算法的计算机视觉与人工智能目标检测技术研究,基于Yolo系列算法的计算机视觉与人工智能目标检测技术分析,基于yolo系列的目标检测分析,人工智能,计算机视觉。 ,基于yolo系列;目标检测分析;人工智能;计算机视觉,基于Yolo系列的人工智能计算机视觉目标检测分析
项目工程资源经过严格测试运行并且功能上ok,可实现复现复刻,拿到资料包后可实现复现出一样的项目,本人系统开发经验充足(全栈全领域),有任何使用问题欢迎随时与我联系,我会抽时间努力为您解惑,提供帮助 【资源内容】:包含源码+工程文件+说明等。答辩评审平均分达到96分,放心下载使用!可实现复现;设计报告也可借鉴此项目;该资源内项目代码都经过测试运行,功能ok 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 【提供帮助】:有任何使用上的问题欢迎随时与我联系,抽时间努力解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 下载后请首先打开说明文件(如有);整理时不同项目所包含资源内容不同;项目工程可实现复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用,资源为网络商品(电子资料类)基于网络商品和电子资料商品的性质和特征不支持退款,质量优质,放心下载使用
Epson_L130,需要删除后缀
双重搜索算法BAS-SCA融合正余弦算法优化极限学习机ELM:混合改进机制,避免局部最优,提高收敛精度,双重搜索算法BAS-SCA与正余弦算法融合优化极限学习机ELM:避免局部最优的混合改进机制,提高收敛精度,融合天牛须算法与正余弦算法的双重搜索算法BAS-SCA优化极限学习机ELM,采用混合改进机制可有效避免搜索陷入局部最优,收敛精度高 ,关键词:融合算法;双重搜索;BAS-SCA;优化;极限学习机ELM;混合改进机制;局部最优;收敛精度高。,双算法融合优化ELM,高效避免局部最优,提高收敛精度
基于NPC五电平逆变器的并网逆变器PQ控制技术研究——通过功率闭环控制实现精确电网相位锁相环与高效并网功率因数调整,基于双二阶广义积分器的NPC五电平逆变器并网PQ控制技术:功率闭环控制与离散化仿真实现,NPC五电平逆变器。 并网逆变器PQ控制。 通过功率闭环控制,实现并网单位功率因数,即并网电流与网侧电压同相位。 为了得到电网电网相位,采用基于双二阶广义积分器的锁相环,该锁相环可以快速准确无误的得到电网相位。 且在初始阶段,就可以得到电网相位,比Matlab自带的锁相环要快很多。 并网有功设定为50kW,无功设定为0,通过仿真可以看出,很快实现了给定的并网功率。 整个仿真全部离散化,包括采样与控制的离散,控制与采样环节没有使用simulink自带的模块搭建,全部手工搭建。 ,基于上述信息,以下是几个核心关键词: NPC五电平逆变器; 并网逆变器PQ控制; 功率闭环控制; 电网相位; 快速准确锁相环; 离散化仿真; 手工搭建。,离散化控制的五电平逆变器并网策略研究
双闭环控制的Buck变换器:实现软启动与离散化仿真的完美电压跟随,Buck变换器:双闭环控制与软启动策略,输出电压平稳跟随参考电压,buck变器。 采用双闭环控制,外环为电压环,内环为电流环。 其中,内环采用平均电流采样。 buck变器采用软启动控制,可以使电流不突变。 从仿真图中可以看出,在0.5秒的时间内,完成了软启动,输出电压完美跟随参考电压。 在1秒时,启动加载。 此时,输出电压有微小的变动,但是马上跟随给定参考电压。 整个仿真完全离散化,主电路与控制部分以不同的步长运行,更加贴合实际。 ,buck变换器;双闭环控制;外环电压环;内环电流环;平均电流采样;软启动控制;离散化仿真;主电路;控制部分步长,双闭环控制的Buck变换器:软启动与精确电压跟随的仿真研究
大宗商品价格指数(Commodity Consumer Price Index,简称CCPI)是一个滞后指标,也是通货膨胀的早期预警指标,能反映通货膨胀的程度。它是特定商品按价格加权计算的指数,反映在不同时点上的价格变动情况。 大宗商品价格指数是一个重要的经济指标,能够反映大宗商品市场的整体价格水平和变动趋势,对于经济预测、政策制定和投资决策等方面都具有重要意义。 数据名称:大宗商品价格指数(CCPI) 数据年份:2010-2024年 ## *02、相关数据* 时间、大宗商品价格指数(CCPI):总指数。
版本号:2.5.6 – 多开版 更新内容: 1.修复核销记录入口显示 2.修复核销记录中店铺显示 3.修改核销记录中的状态显示 4.修复附近商品订单问题 无需更新小程序 版本号:2.5.5 – 多开版 更新内容: 1.修复指定中奖的问题 2.优化提现功能 3.修改商品销售统计 4.修改后台统计页面 5.小程序新增核销记录 6.修复商家抽佣不到账的问题 7.修复机器人参团跟指定中奖数量叠加的问题 需要更新小程序