如果您用eclipse开发代码,但是eclipse响应很慢,甚至有些时候你切换一个java代码文件或者动了一下eclipse,就要等待一段时间(有点严重到20多秒以上),类似卡住了的感觉(我的内存是1G的,磁盘空闲空间多,而且只开了一个eclipse应用,速度也不会有改善。),那么我这个方法可以帮助你解决这个问题:
使用下面的命令行启动eclipse:
eclipse.exe -vmargs -Xverify:none -XX:+UseParallelGC -XX:PermSize=20M -Xms64M -Xmx512M
如果通过快捷方式启动eclipse,这样操作:“右键->属性->目标(输入框)”,参照上面的命令行在输入框中修改其中的命令行。
myEclipse也可以参照这样使用。
通常有用的开关
以下设置在大多数系统应该产生比出厂设置更好的性能。
- -Xverify:none - 该开关禁用 Java 字节代码验证,从而使加载更快,并且在启动过程中不需要加载类,仅用于验证。该开关缩短了启动时间,因此,没有理由不使用它。
- -vmargs - 表示将后面的所有参数直接传递到所指示的 Java VM。
- -Xms32m - 该设置告诉 Java 虚拟机将它的初始堆大小设置为 32 兆字节。通过告诉 JVM 最初应该为堆分配多少内存。
- -Xmx256m - 该设置告诉 Java 虚拟机它应该为该堆使用的最大内存数量。对该数量进行强硬的上限限制意味着 Java 进程占用的内存比可用的物理 RAM 少。对于具有较多内存的系统可以提高该显示。当前默认值为 128MB。注意: 不要将该值设置为接近或大于您系统中物理 RAM 的量,否则它将造成运行时期间严格的交换。
- -XX:PermSize=20m - 此 JVM 开关不仅功能更为强大,而且能够缩短启动时间。该设置用于调整内存"永久区域"(类保存在该区域中)的大小。因此我们向 JVM 提示它将需要的内存量。该设置消除了许多系统启动过程中的主要垃圾收集事件。
更多吸引人的开关
- -XX:+UseConcMarkSweepGC 或 -XX:+UseParNewGC - 如果您遇到入侵垃圾收集暂停的问题,则尝试这些开关。该开关使 JVM 对主要的垃圾收集事件(也对于次要的收集,如果运行在多处理器的工作站上)使用不同的算法,一些算法并不停止整个垃圾收集进程。
- -XX:+UseAdaptiveSizePolicy - 该开关可能有助于提高垃圾收集器吞吐量并减少内存占用。在 JDK5.0 中实现的 garbage collector ergonomics 的一部分。
- -XX:+UseParallelGC - 一些测试表明,至少在装备相当好的内存的系统上,当在单处理器系统上使用该收集算法时,次要垃圾收集的持续时间将减半。注意这是自相矛盾的,该收集器设计用于在具有十亿字节堆的多处理器系统上工作最佳。没有数据表示它在主要垃圾收集上的效果。注意: 该收集器和
-XX:+UseConcMarkSweepGC
是相互排斥的。
- -J-XX:CompileThreshold=100 - 该开关将使启动时间更慢,通过 HotSpot 来编译下载至本机的代码的很多方法比其他情况更快。报告的结果是 IDE 运行之后性能较高,因为将编译比解释的代码更多的 UI 代码。该值表示编译之前必须调用方法的次数。
影响图形行为的选项
- -Dsun.java2d.opengl=true - 启用新的基于 OpenGL 的管道,以便 Java 2D 用来支持使用 OpenGL 的快速硬件渲染。
- -Dsun.java2d.d3d=false - 该开关禁用 DirectDraw 并且可能解决一些 HW 配置的性能问题。
- -Dawt.nativeDoubleBuffering=true - 该开关使 Swing 假设操作系统正在处理双倍缓存并且它不应该执行任何操作。在远程 X 连接上该开关可能不工作,但是对于本地使用,它非常有用,因为您真正看到了每个重画的完成,这使它很容易注意到某些操作是否正在造成不必要的重画。
- Font anti-aliasing 用于 Swing widget,可以与 -Dswing.aatext=true 属性一起启用。与环境变量 J2D_PIXMAPS=shared 的设置和导出一起使用时非常有用,至少在 Linux 平台上可以获得合理的性能。
posted on 2009-03-11 15:14
心路 阅读(3939)
评论(0) 编辑 收藏