调整NetBeans的JVM性能开关

来源:百度文库 编辑:神马文学网 时间:2024/04/29 11:38:06
调整 JVM 开关以提高性能
JVM 提供了用于调整内存分配和垃圾回收行为的各种标准开关和非标准开关。其中一些设置有助于提高 IDE 的性能。
请注意,-X 和 -XX(尤其是后者)JVM 开关未得到正式支持,因为它们通常是特定于 JVM 或 JVM 供应商的开关。此节中讨论的开关可用于 Sun Microsystems J2SE 1.4.2 和 J2SE 1.5。其他 JVM 实现的用户可能需要删除这些开关才能运行 IDE。
在大多数系统上,以下设置产生的性能应该优于工厂设置。这些开关(设置“永久区域”大小除外)成为 IDE 的缺省开关已经有一些时间,而且应该已经存在于您的 netbeans.conf 文件中。
-J-Xverify:none
此开关用于关闭 Java 字节码验证,从而加快类加载,以及消除在启动过程中仅为验证目的而加载类的需要。此开关将显著缩短启动时间。 -J-Xms32m
此设置用于通知 Java 虚拟机将其初始堆大小设置为 32 MB。通过通知 JVM 它最初应该为堆分配多少内存,我们可以防止它随着 IDE 使用更多的内存而将堆增大。 -J-Xmx128m
此设置用于指定 Java 虚拟机应该用于堆的最大内存。对此数值设置硬性上限意味着 Java 进程不能使用比可用的物理 RAM 更多的内存。对于具有更多内存的系统可以提升此限制 - 128 MB 设置有助于确保 IDE 在 256MB 的系统上可靠地执行操作。注意:不要将此值设置为接近或大于系统中的物理 RAM 数,否则在主要回收过程中将导致频繁的交换空间操作。 -J-XX:PermSize=20m
这是一个较特殊的 JVM 开关,但它也缩短了启动时间。此设置用于调整内存中“永久区域”(在这里保存类)的大小。由于我们知道所有 IDE 类均占用特定数量的内存,因此我们向 JVM 提示它将需要的内存数量。此设置消除了许多系统上启动过程中的主要垃圾回收事件。SunONE Studio 或包括更多模块的其他 IDE 的用户可能希望将此数值设置得更高些。
下面列出了一些其他的 JVM 开关,在一些系统(而不是所有系统)上,这些开关会或多或少地影响 NetBeans 性能。尽管使用它们会产生一定的影响,但仍值得一试。
-J-XX:CompileThreshold=100
此开关将会延长启动时间,原因是:与不使用此开关的情况相比,HotSpot JVM 会以更快的速度将更多的方法编译到本地代码中。其结果是提高了 IDE 运行时的性能,这是因为更多的 UI 代码将被编译而不是被解释。此值表示在编译一个方法之前必须调用它的次数。 -J-XX:+UseConcMarkSweepGC -J-XX:+UseParNewGC
如果出现垃圾回收意外中断的问题,则请尝试使用这些开关。此开关导致 JVM 对主要垃圾回收事件(如果在多处理器工作站上运行,则也适用于次要回收事件)使用不同的算法,这些算法不会影响整个垃圾回收进程。如果使用了 PermSize 开关,则还应向 netbeans.conf 文件中添加行 -J-XX:+CMSClassUnloadingEnabled,以便启用类卸载(使用此回收器时,缺省情况下不启用类卸载)。注意:目前尚不确定此回收器是提高还是降低单处理器计算机的性能。 -J-XX:+UseParallelGC
某些测试表明,至少在内存配置相当好的单处理器系统中,使用此回收算法可以将次要垃圾回收的持续时间减少一半。请注意,这是一个矛盾的问题 - 事实上此回收器主要适用于具有千兆字节堆的多处理器系统。尚无可用数据表明它对主要垃圾回收的影响。注意:此回收器与 -J-XX:+UseConcMarkSweepGC 是互斥的。可以在性能 Web 站点上找到支持使用此算法的度量数据。