这里以《 给NetBeans IDE 换衣服》一文的配置为例:
1
netbeans_default_options = "-J-client -J-Xss2m -J-Xms256m -J-Xmx682m -J-XX:+UseConcMarkSweepGC -J-XX:+CMSClassUnloadingEnabled -J-XX:+CMSPermGenSweepingEnabled -J-XX:PermSize=32m -J-XX:MaxPermSize=384m -J-Dapple.laf.useScreenMenuBar=true -J-Dapple.awt.graphics.UseQuartz=true -J-Dsun.java2d.noddraw=true -J-Dnimrodlf.themeFile=/opt/netbeans/bin/DarkGrey.theme -cp:p /opt/netbeans/bin/nimrodlf-1.2.jar --laf com.nilo.plaf.nimrod.NimRODLookAndFeel -J-Dswing.aatext=true -J-Dawt.useSystemAAFontSettings=lcd --fontsize 12"
-J-Xss2m 每个线程的Stack大小,Stack的大小限制着线程的数量.如果Stack过大就会导致内存溢漏.-Xss参数决定Stack大小,如果Stack太小,也会导致Stack溢漏.
-J-Xms256m 初始堆大小,此设置用于通知 Java 虚拟机将其 初始堆大小设置为256MB。通过通知 JVM 它最初应该为堆分配多少内存,我们可以防止它随着 IDE 使用更多的内存而将堆增大。
-J-Xmx682m 最大堆大小,此设置用于指定 Java 虚拟机应该用于堆的最大内存。对此数值设置硬性上限意味着 Java 进程不能使用比可用的物理 RAM 更多的内存。对于具有更多内存的系统可以提升此限制。注意:不要将此值设置为接近或大于系统中的物理 RAM 数,否则在主要回收过程中将导致频繁的交换空间操作。一般来说设置此值为本机物理内存的1/3 大小是比较合适的,这里我是2GB内存的机子。
-J-XX:+UseConcMarkSweepGC -J-XX:+CMSClassUnloadingEnabled -J-XX:+CMSPermGenSweepingEnabled
内存和垃圾收集机制配置,使用NetBeans的缺省配置,在长时间的运行后,往往会突然间僵住了,没有响应,这是因为JVM缺省的垃圾收集机制不使用增量式并行收集,而是隔断时间后,等内存垃圾积累到一定程度,完全锁定甚至暂停虚拟机,进行垃圾收集。可以将这种垃圾收集机制改成增量式并行收集,避免这种僵死。加上 -J-XX:+UseConcMarkSweepGC -J-XX:+CMSClassUnloadingEnabled -J-XX:+CMSPermGenSweepingEnabled 后能有效解决此类问题。
-XX:+UseConcMarkSweepGC:设置并发收集器
-XX:PermSize 设置非堆内存初始值,默认是物理内存的1/64;由XX:MaxPermSize设置最大非堆内存的大小,默认是物理内存的1/4.
-J-XX:PermSize=32m 这是一个较特殊的 JVM 开关,但它也缩短了启动时间。此设置用于调整内存中“永久区域”(持久代)的大小。由于我们知道所有 IDE 类均占用特定数量的内存,因此我们向 JVM 提示它将需要的内存数量。此设置消除了许多系统上启动过程中的主要垃圾回收事件。
-J-XX:MaxPermSize=384m
Perm(俗称方法区)占整个堆内存的最大值。
个人觉得NetBeans缺省的工具栏按钮太大,可以右键点击工具栏,从下拉菜单中选择Small Toolbar Icons。
-J-Dswing.aatext=true 启用界面的反走样效果。
-J-Dawt.useSystemAAFontSettings=lcd 启用Lcd反走样效果。
-J-Dswing.useSystemFontSettings=false 禁用系统字体设置
字体锯齿问题,在Windows下需要明确打开操作系统的字体边缘平滑设置后,才起作用。LCD屏幕的电脑可以通过启用ClearType来美化字体效果。
–fontsize 12 设置NetBeans IDE 用户界面中的字体大小,以磅表示。如果未使用此选项,则字体大小为 11 磅。(编辑器的字体可以通过选项设置来实现)
–cp:p additional-classpath 将指定类路径置于 IDE 的类路径之前。
–cp:a additional-classpath 将指定类路径附加到 IDE 的类路径上。
–open file 在源代码编辑器中打开文件。
–open file:line number 在源代码编辑器中打开文件,并将光标置于指定行上。
–laf UI-class-name 选择给定的类作为 IDE 的外观。以下是两个外观类的示例:
com.sun.java.swing.plaf.motif.MotifLookAndFeel
javax.swing.plaf.metal.MetalLookAndFeel
–locale language[:country[:variant]] 激活指定的语言环境,如设定locale为英文:
–locale en:US (注意,这里不带-J)
也可以这样指定Locale :  -J-Duser.language=en -J-Duser.region=US
-J-Duser.language=zh -J-Duser.region=CN //中文
-J-Duser.language=de -J-Duser.region=DE // 德语
-J-Duser.language=en -J-Duser.region=US // 英语
-J-Duser.language=fr -J-Duser.region=FR // 法语
-J-Duser.language=ru -J-Duser.region=RU // 俄语
尽管我这里下载的是中文版的NetBeans IDE,但是指定en-US的locale后,就变成英文版的了,发现中文版的好多翻译看了不知道在说什么,有些误导人,还是喜欢用英文版的。
–userdir userdir 明确指定用户目录,该目录是存储用户设置的位置。
-J-Dsun.java2d.noddraw=true 防止使用 DirectX 进行呈现。此开关可防止在某些带有不合格图形卡的 Microsoft Windows 系统上出现问题。
-J-Dorg.netbeans.spi.java.project.support.ui.packageView.USE_TREE_VIEW=true 以基于目录的视图(而不是基于包的视图)显示“项目”窗口中的包。
-J-Dfile.encoding=UTF-8 设定字符集为UTF-8
二、禁用不必要的模块
禁用没有使用的模块:Tools》Plugins》Installed
选择不用的模块,Deactivate。
我这里去掉了 Glashfish、JSF、CVS等。