eclipse编译慢 提高eclipse的性能

2023-11-07

编译慢原因有多种,其中可以通过修改eclipse.ini文件设置缓存大小,并将工作空间的validation的多项验证去除(因为这些验证也为在编译时被执行,只保留几个必须的,我就只设置了xml验证),关闭checking  for update自动更新  

一、去除validate验证

1.给eclipse桌面快捷方式添加参数,这些按自己的机器来配置,

可google到很多资料,如:D:\java\eclipse3.2.1\eclipse.exe -XX:+UseParallelGC -XX:PermSize=20M -XX:MaxNewSize=32M -XX:NewSize=32M -Xmx128m -Xms128m

2.进入Preferences把Plug-in Development>Target Platform>plug-in里

跟自己无关或者暂且不用的plug-in去掉勾选,我这里共400多个中去掉了100多个。

3.MyEclipse5.0.1GA_E3.2 之前的:进入Preferences把跟编辑有关的所有的Edit Modes

设为Disable Design Mode

4.打开Customize Perspective里自己没用到的选项自己去掉勾选。

5.取消自动validation 
validation有一堆,什么xml、jsp、jsf、js等等,我们没有必要全部都去自动校验一下,
只是需要的时候才会手工校验一下,速度立马提升好几个档次!

取消方法: 
windows-->perferences-->myeclipse-->validation 
除开Manual下面的复选框全部选中之外,其他全部不选

手工验证方法: 
在要验证的文件上,单击鼠标右键-->myeclipse-->run validation

6.去除不需要加载的模块
一个系统20%的功能往往能够满足80%的需求,MyEclipse也不例外,我们在大多数时候只需要20%的系统功能,

所以可以将一些不使用的模块禁止加载启动。通过Windows - Preferences打开配置窗口,

依次选择左侧的General - Startup and Shutdown,这个时候在右侧就显示出了Eclipse启动时加载的模块,

可以根据自己的实际情况去除一些模块。

转自:http://hi.baidu.com/liyaohuang/blog/item/ee0440ec759b0f3826979197.html

 

二:关掉myeclipse下的checking for update自动更新 

       1. window --> preferences --> General --> Startup and Shutdown --> 在列表中找到 "Automatic Updates Scheduler " 项去掉前面的勾。


       2. Window --> Preferences --> Myeclipse Enterprise Workbench --> Maven4Myeclipse --> Maven --> "Download repository index updates on startup" 去掉前面的勾。
       

3. Window --> Preferences --> Myeclipse Enterprise Workbench --> Maven4Myeclipse --> MyEclipse Dashboard --> "Show MyEclipse Dashboard on startup" 去掉前面的勾。

很多地方都只能看到第一步,但是我试过了还是没用,要上面三步都执行,才能有效,这样设置后MyEclipse速度明显会提高,去试试看,会有效果的,让烦人的checking for update go out!



eclipse.ini中的参数:

-vmargs:       说明后面是VM的参数
-Xms40m:     虚拟机占用系统的最小内存
-Xmx256m:   虚拟机占用系统的最大内存
-XX:PermSize:最小堆大小。(一般报内存不足时,都是说这个太小,
                      堆空间剩余小于5%就会警告,建议把这个稍微设
                      大一点,不过要视自己机器内存大小来设置)
-XX:MaxPermSize:最大堆大小。这个也适当大些。

eclipse.ini文件用来配置eclipse启动时候的内存分配方案,Xms是初始化内存大小,Xmx是最大可使用内存大小,这个默认的配置是eclipse资源消耗最小化的配置。如果你的项目比较大,这个配置必须改,一般适当调整为128,384即可,若项目更大一些则调整的再大一些,根据实际情况决定。这个参数配置的大小很关键,太小,eclipse垃圾回收会过于频繁导致很慢,或者内存堆栈溢出而崩溃。太大,eclipse会吃掉大量内存,垃圾回收周期变长,但每次回收会很慢,影响使用。所以你在配置的时候需要权衡,尝试!

       PermSize大一点肯定更好,而且最好是设置PermSize和MaxPermSize一样大。理由如下:
PermSize 和MaxPermSize如果设置为相同还可以在一定程度上提高性能,因为,PermSize在不断的变化中会需要转移其中的数据。如果固定了以后,则可以减少每次扩大PermSize带来的性能损失。

1、PermGen space简介
  
  PermGen space的全称是Permanent Generation space,是指内存的永久保存区域OutOfMemoryError: PermGen space从表面上看就是内存益出,解决方法也一定是加大内存。
  
  说说为什么会内存益出:
  (1)这一部分用于存放Class和Meta的信息,Class在被 Load的时候被放入PermGen space区域,它和和存放Instance的Heap区域不同。
  (2) GC(Garbage Collection)不会在主程序运行期对PermGen space进行清理,所以如果你的APP会LOAD很多CLASS 的话,就很可能出现PermGen space错误。这种错误常见在web服务器对JSP进行pre compile的时候。
  
  如果你的WEB APP下都用了大量的第三方jar,其大小超过了jvm默认的大小(4M)那么就会产生此错误信息了。

解决方法: 手动设置MaxPermSize大小
  
  修改TOMCAT_HOME/bin/catalina.bat,在echo "Using CATALINA_BASE: $CATALINA_BASE"上面加入以下行:
   JAVA_OPTS="-server -XX:PermSize=64M -XX:MaxPermSize=128m
  
建议:将相同的第三方jar文件移置到tomcat/shared/lib目录下,这样可以减少jar 文档重复占用内存

1。参数的含义

-vmargs -Xms128M -Xmx512M -XX:PermSize=64M -XX:MaxPermSize=128M

参数中-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文件中要写成这样:
-vm
C:\Java\jre1.6.0\bin\javaw.exe
按照上面所说的,最后参数在eclipse.ini中可以写成这个样子:
-vmargs
-Xms128M
-Xmx512M
-XX:PermSize=64M
-XX:MaxPermSize=128M
实际运行的结果可以通过Eclipse中“Help”-“About Eclipse SDK”窗口里面的“Configuration Details”按钮进行查看。
另外需要说明的是,Eclipse压缩包中自带的eclipse.ini文件内容是这样的:
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
-vmargs
-Xms40m
-Xmx256m
其中
–launcher.XXMaxPermSize(注意最前面是两个连接线)跟-XX:MaxPermSize参数的含义基本是一样的,我觉得唯一的区别就是前者是eclipse.exe启动的时候设置的参数,而后者是eclipse所使用的JVM中的参数。其实二者设置一个就可以了,所以这里可以把–launcher.XXMaxPermSize和下一行使用#注释掉。

3. 其他的启动参数。 如果你有一个双核的CPU,也许可以尝试这个参数:

-XX:+UseParallelGC

让GC可以更快的执行。(只是JDK 5里对GC新增加的参数)

 补充:

可以在myelipse里选中相应的服务器比如tomcat5,展开里面的JDK子项页面,来增加服务器启动的JVM参数设置:

-Xms128m
-Xmx256m
-XX:PermSize=128M
-XX:MaxNewSize=256m
-XX:MaxPermSize=256m

http://www.cnblogs.com/xd502djj/archive/2011/08/22/2148959.html

http://www.cnblogs.com/yan5lang/archive/2011/05/24/2055867.html


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

eclipse编译慢 提高eclipse的性能 的相关文章

  • Java解一元二次方程和四则运算

    目录 一 Java解一元二次方程 运行结果 思路解析 二 Java四则运算 运行结果 思路解析 一 Java解一元二次方程 package hello import java util Scanner public class hey pu
  • 前端面试总结之CSS

    文章目录 1 BFC 块级格式化上下文 重点关注 2 CSS盒子模型 3 清除浮动 4 隐藏元素的方法及各自的特点 5 line height和heigh区别 6 用CSS画三角形 7 圣杯布局 三栏布局方式两边固定中间自适应 与双飞翼布局
  • 算法设计与分析复习

    文章目录 算法基本概念 算法的定义 算法好坏如何衡量 时间复杂度 算法评价 递归与分治 递归的概念 递归式解法 什么是分治法 基本策略 分治法适用情况 分治法与平衡的概念 分治法实例 快排 最小元 最大元 最近点对问题 寻找顺序统计量问题
  • 126.数据链路层有哪些协议?

    PPP 点到点 HDLC 高级数据链路协议 csma cd carrier sensor multiple access collosion detect 载波多路监听 冲突检测 工作原理 先听后发 边听边发 冲突停发 随机延迟后重发
  • 红黑、B、B+————数据结构//复习复习复习

    二叉排序树 树型操作鼻祖 其他树的增删查都如此 平衡二叉树 查找效率最高 但维护成本高 对平衡二叉树的插入操作而言 其本质上比二叉排序树 BST 的插入操作多了一个平衡操作 解决了二叉排序树插入操作可能出现的斜树 不平衡问题 我们以插入一个
  • 复习:详解函数重载

    什么是函数重载 一组函数 处于同一个作用域 其中函数名相同 参数列表的个数或类型不同 那么这一组函数就成为函数重载 一组函数要称得上函数重载 一定是处在同一个作用域中函数名同 参数列表同 返回值不同 不叫重载 因为函数符号都相同函数重载是通
  • 信息系统开发与管理(自考)往届题目复习

    信息系统开发与管理 信息系统开发与管理 简答题 选择题解析 day2 名词解释 day3 day4 信息系统开发与管理 简答题 战略型管理信息系统 主要服务于高层管理者 主要目的是为了战略计划的制订和调整提供辅助决策的功能 简述管理信息系统
  • Mysql外键设置中CASCADE、NO ACTION、RESTRICT、SET NULL区别意义

    CASCADE 对父表进行delete update操作时 子表也会delete update掉关联的记录 更新 删除主表中记录时自动更新 删除子表中关联记录 RESTRICT 如果想要删除 更新父表的记录时 而子表中有关联该父表的记录 则
  • 秋招准备之——MySQL复习

    秋招复习笔记系列目录 不断更新中 1 数据结构全系列 2 计算机网络知识整理 一 3 计算机网络知识整理 二 4 Java虚拟机知识整理 5 计算机操作系统 6 深入理解HashMap 7 深入理解ConcurrentHashMap 8 M
  • eclipse编译慢 提高eclipse的性能

    编译慢原因有多种 其中可以通过修改eclipse ini文件设置缓存大小 并将工作空间的validation的多项验证去除 因为这些验证也为在编译时被执行 只保留几个必须的 我就只设置了xml验证 关闭checking for update
  • 大数据技术原理——期末复习spark

    1 Spark的基本概念 RDD DAG Executor 应用 任务 作业 阶段 RDD 是Resillient Distributed Dataset 弹性分布式数据集 的简称 是分布式内存的一个抽象概念 提供了一种高度受限的共享内存模
  • 图解算法 -使用Python 学习笔记(3)

    图解算法 使用Python 学习笔记 3 排序算法 3 1认识排序 用以排序的依据是键 它所含的值被称为 键值 通常键值的数据类型有数值类型 中文字符串以及非中文字符串三种 其中中文字符串用该中文内码 如中文繁体BIG5码 中文简体GB码
  • 删除数字问题

    已知n位数字正整数a 去除任意k位数 使剩下数字按原次序排列成新正整数 使其最大 C语言 include
  • 10.图的深度优先遍历序列是否唯一?为什么?

    不唯一 因为邻接点入栈的时候的顺序不是固定的
  • 数据结构——二叉树 增加、删除、查询

    二叉树系统 public class BinarySystem public static void main String args BinaryDomain root null 定义头结点 new BinaryAction manage
  • 无线传感网络

    第一 二章 无线传感网络的定义 无线传感网络是大量的静止节点或移动的传感器以自组织和多跳的方式构成的无线网络 目的是协作地探测 处理和传输网络覆盖区域内感知对象的监测信息 并报告给用户 传感器节点的组成 数据处理 数据采集模块 传感器 A
  • 算法设计技巧与分析 答案整理

    算法设计技巧与分析 沙特版 这书答案真难找啊 东拼西凑薅出这么些 https wenku baidu com view 279b9245561252d380eb6ea4 html https wenku baidu com view af5
  • [数据库系统]数据建模:工程化方法 之 IDEF1x规范

    IDEF1x规范 1 实体 2 联系 1 实体 实体 Entity 一个 实体 表示一个现实和抽象事物的集合 这些事物必须具有相同的属性和特征 这个集合的一个元素就是该实体的一个实例 实体被区分为独立实体和从属实体 独立实体 一个实体的实例
  • CPU时钟周期、主频、CPI、MIPS

    主频 理解 主频是机器内部主时钟的频率 主频越高 完成指令的一个执行步骤所用的时间就越短 速度越快 比如跳绳 跳的越快 即频率越高 那么完成一次所用的时间就越短 单位 Hz 常见的有1 8GHz 2 4GHz CPU时钟周期 理解 跟上面的
  • 软件工程基础复习_7

    第7章软件测试 软件验证是通过检查和提供客观证据表明软件已经满足规定的需求 是确保软件质量和降低软件成本的重要手段 进行软件验证的方式有两种测试和证明 软件测试又可以分为两类 静态测试和动态测试 静态测试又称评审 是对软件进行的一种分析和检

随机推荐

  • 【MySQL】MySQL高手是如何练成的?

    MySQL 什么是MySQL呢 怎样练成MySQL高手 在Linux安装MySQL 问题处理 Mysql 的用户管理 什么是MySQL呢 Mysql 是开源的 可以定制的 采用了 GPL 协议 可以根据业务需要修改源码来开发自己的 Mysq
  • 2023 年为您的网站提供 30 个免费的 CSS 加载动画

    我们将使用 Lottie 文件 Lottie 文件 毫不费力地为网络 应用程序 社交和设计带来最小的 免费的 随时可用的动态图形 立即创建 编辑 测试 协作和发布 Lottie 动画 脚步 1 在你的html中添加这个脚本 2 我们将提供一
  • MySQL基于复制线程实现MTS并行恢复binlog

    文章目录 一 MySQL备份恢复流程 二 并行恢复binlog原理 三 操作步骤 四 总结 一 MySQL备份恢复流程 MySQL数据恢复通常分为两个步骤 恢复全备数据 MySQL有多种备份工具 分为物理备份和逻辑备份 具体可以参看下面这篇
  • 因果推断--双重差分法(DID)的原理和实际应用(一)

    目录 一 应用场景 二 DID知识介绍 2 1 理论知识介绍 2 2 DID图形化解释 三 应用案例 3 1 构造对照组 3 2 平行趋势检验 3 3 因果效应评估 四 优缺点总结 一 应用场景 在精细化运营场景中 常常会面临如下问题 不方
  • 关闭谷歌浏览器开发者工具中的 chrome-extension 网络请求

    在谷歌浏览器的设置里 选择扩展程序 关闭插件 即可 ps 得自己一个一个的关闭试试
  • 绝不要不做点评,除非你想站队或被站队

    在项目中 对任何一方提供的任何材料 包括会议纪要 周报 月报 函件 项目技术文档及过程文档中等 绝不要直接通过 一定要提出一些意见 哪怕很微不足道的意见 原因 1 如果直接通过 意味着你同意 即你和文件提供方站在同一立场 2 如果提出一些意
  • React和Vue的区别

    文章目录 React与Vue的相同点 1 都支持服务器渲染 2 都数据驱动视图 3 都遵循组件化的思想 4 都使用虚拟DOM 5 都有状态管理 React与Vue框架的不同点 1 框架本质不同 2 数据流不同 3 监听数据变化的实现原理不同
  • Python项目命令行执行无法找到Module(ModuleNotFoundError)

    缘起 在IDE中可以执行的Python代码 直接在命令行则无法执行 错误信息提示 ModuleNotFoundError No module named xxxxx 原因分析 基于命令行执行的时候 当前项目的代码没有作为依赖包放入命令行的依
  • 电力电子转战数字IC——路科MCDF全览(持续更新)

    经过两次面试后 对MCDF做一次全面的深入总结 目前进度 硬件部分的node fifo 寄存器 formatter MCDF顶层 APB接口 TB接口 软件部分的chnl pkg fmt pkg apb pkg mcdf rgm pkg m
  • VMware 虚拟机图文安装和配置 AlmaLinux OS 8.6 教程

    镜像下载 域名解析 时间同步请点击 阿里云开源镜像站 一 VMWare 安装配置 1 VMware 下载地址 VMware Workstation Pro 16 x 需要登录 安装和配置步骤略 二 AlmaLinux OS 8 6 安装配置
  • 从客户端发送到服务器的请求包括哪些信息,客户端发送消息给服务器

    客户端发送消息给服务器 内容精选 换一换 VR云渲游平台提供了设备的实时监控功能 您可以通过监控大屏 查看指定设备在云上运行时的实时监控数据 当设备处于 运行中 状态时 才可以查看设备的实时监控数据 当设备与云服务器正确连接时 可在设备列表
  • CUnit详解(基于linux下的白盒单元测试)

    CUnit是一个对C语言编写的程序进行单元测试的框架 在线文档说它作为一个静态链接库被链接到用户的测试代码中 它提供了一种简洁的框架来建立测试架构 并提供丰富的断言 Assertion 来测试通用数据类型 除此之外 它还提供了 许多不同的结
  • H5考点

    HTML 5 1 行内元素 块级元素 空元素 行内元素 input img span label a b strong sub sup button textarea select 行内元素 不独占一行 上下内外边距无效 高度宽度无效 只能
  • 手把手教你突破 GPT-4.0 3小时25次的限速!

    很多人很郁闷 ChatGPT Plus账号在浏览器上使用GPT4 0模型的时候 会受到官方的限制 每3小时只能对话25次 是真的不够用 但是在手机上使用GPT4 0模型则不会有限制 既然这样 那我们是否也可以在浏览器上无限制呢 答案是可以的
  • CSDN周赛56期 - 八阿哥依旧

    之前54期被判作弊 申述无果 反被客服拉黑 水平不够 脾气够够的 让我彻底死心 从此粉转路 各种平台也不止C站一家 确实没有必要一棵树上吊shi 各位如果真心想通过竞赛提高自己的话 实在没必要来C站 整个娱人愚己 我这么说可不是恼羞成怒 看
  • 快速搜索Wox工具之Everything Client没有运行报错,解决办法!

    一直在用的一款快速搜索神器 Wox 但是在使用过程中出现一个报错 报错如下 Everything Client 没有运行 令我很烦 百度了一下 试了很多方法 还是不能发挥它的最大功效 由于我是一个好学的人 一直追踪这个问题 并寻求解决 终于
  • QT---QMainWindow初始化顺序

    C 构造 先子类以及成员 再父类以及成员 析构的顺序就是构造顺序的逆序 就是先析构父类 再析构子类 先析构本类 再析构本类的成员 QT 1 控件类 gt 控件提升类 gt QMainWindow类 2 子窗体的构造函数中初始化了父窗体的pa
  • 【log4j】

    文章目录 log4j 简介 组成 日志级别 log4j使用 占位符 log4j web 简介 Log4J 是 Apache 的一个开源项目 官网 http jakarta apache org log4j 通过在项目中使用 Log4J 我们
  • DC-UNet:重新思考UNet架构和双通道高效CNN医学图像

    摘要 经典UNet的体系架构在某些方面存在着局限性 因此本文对其结构提出了改进 1 设计高效的CNN架构来取代编码器和解码器 2 在最先进的U Net模型的基础上 应用残差模块来取代编码器和解码器之间的跳过连接来进行改进 医学图像分割是通过
  • eclipse编译慢 提高eclipse的性能

    编译慢原因有多种 其中可以通过修改eclipse ini文件设置缓存大小 并将工作空间的validation的多项验证去除 因为这些验证也为在编译时被执行 只保留几个必须的 我就只设置了xml验证 关闭checking for update