http://blog.sina.com.cn/swingjava[订阅][手机订阅]
字体大小: 正文
【贴士】Swing Bug 5095398会严重影响NetBeans的速度(2007-06-25 14:16:54)
    我前面的一篇文章曾经提到过这个问题,Swing的一个bug 5095398会严重影响NetBeans的速度。最近又听某个网友说他的NetBeans速度非常慢,我想是不是因为这个bug引起的。
    这个bug的现象是当在笔记本上跑Swing程序时,把电源给拔掉时,会发现Swing程序几乎慢的不可用。这个Swing bug的概要是:Graphics performance degrades unacceptably when XPS laptop unplugged (Win XP)。在这儿可以看到详细内容
    该bug维护者经研究发现,这个Swing bug是由ATI图形卡驱动程序的一个bug引起的。因此这个bug的修改依赖于ATI对于驱动程序的修改。目前好像已经向ATI提交了bug报告。
    如何在没有得到图形卡驱动修改补丁之前解决这个问题?这个bug的维护者给出的workaround办法是,拔掉电源时使用虚拟机参数-Dsun.java2d.ddoffscreen=false。或在控制面板内设置PowerPlay属性,可以通过屏幕属性->高级访问该设置。禁止PowerPlay属性,相当于插上电源的性能(可能会引起较高的电能消耗)。如果使用Java 5.0u8以前的版本,还可以通过虚拟机参数-Dsun.java2d.d3d=false或设置环境变量J2D_D3D=false禁止Direct3D属性。
    NetBeans是Swing程序,所以当运行在笔记本上而且电源拔掉时,或Powerplay处于启动状态时,不管你有多少内存,甚至有1G以上,NetBeans的响应速度也非常慢。如果你发现NetBeans非常慢,但是你的内存并不小,也没有什么杀毒软件影响,而你使用的是笔记本时,很可能是上面的原因导致的。
    这个问题非常普遍,在网上碰到大量的人抱怨1G的内存NetBeans都慢的不可忍受,其实很可能都是这个问题。理论上NetBeans在512M内存的机子应该跑得非常快。由于知道这个解决方案的人并不多,这是许多人碰到这种情况无法解决的主要原因。
    解决方法是:
    1.禁止PowerPlay,在控制面板中的显示属性->高级中设置。
    或者
    2.使用虚拟机参数-Dsun.java2d.ddoffscreen=false,即netbeans\etc\netbeans.conf的启动命令参数:

netbeans_default_options="-J-Xms64m -J-Xmx256m -J-XX:PermSize=32m -J-XX:MaxPermSize=160m -J-Xverify:none -J-Dapple.laf.useScreenMenuBar=true -J-XX:+UseConcMarkSweepGC -J-XX:+CMSClassUnloadingEnabled -J-XX:+CMSPermGenSweepingEnabled -J-Dswing.usingSystemFontSettings=false -J-Dsun.java2d.ddoffscreen=false"

   或者

   3.使用虚拟机参数-Dsun.java2d.d3d=false,即netbeans\etc\netbeans.conf的启动命令参数:
netbeans_default_options="-J-Xms64m -J-Xmx256m -J-XX:PermSize=32m -J-XX:MaxPermSize=160m -J-Xverify:none -J-Dapple.laf.useScreenMenuBar=true -J-XX:+UseConcMarkSweepGC -J-XX:+CMSClassUnloadingEnabled -J-XX:+CMSPermGenSweepingEnabled -J-Dswing.usingSystemFontSettings=false -J-Dsun.java2d.d3d=false" 
加载中,请稍候...
  • 评论加载中,请稍候...

验证码:请点击后输入验证码  收听验证码

发评论

以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

相关博文
读取中...
推荐博文
读取中...