随着Java
6对于Swing性能的改进,Swing的速度已经开始超过SWT的性能了。去年九月份,当Java
6 的Beta刚出来时,MiG Layout Site网站的Mikael
Grev编写了一个性能测试程序(benchmark)来测试和比较Swing和SWT的性能,并将最终结果发布在JavaLobby上。最终结果证明在除了在Windows上Swing和SWT的速度几乎一样快之外,在其他操作系统上Swing的速度都要快于SWT。
这怎么可能?难道SWT不是直接调用本地组件吗?Swing难道不是模拟的吗?为什么使用本地组件的SWT的速度反而比不上模拟的Swing?人们不禁会这样问。然而事实就是事实,人们在看到这样结果后,是时间反思这些为什么了。这也使我想起前不久当O'Reily编辑将2006年IDE获胜者颁发给NetBeans时,Eclipse的支持者的疑问。
这篇文章的地址是在:
下面是作者在Windows平台上测试的结果:
Swing
Java Version: 1.6.0-rc
Look & Feel: The Microsoft Windows Look and Feel
Time to Show: 391 millis.
Benchmark Run Time: 15640 millis.
Average Run Time: 782 millis (20 runs).
Swt
Java Version: 1.6.0-rc
Time to Show: 203 millis.
Benchmark Run Time: 17782 millis.
Average Run Time: 889 millis (20 runs).
Swing on Java L&F (Steel)
Java Version: 1.6.0-rc
Look & Feel: The Java(tm) Look and Feel
Time to Show: 360 millis.
Benchmark Run Time: 12219 millis.
Average Run Time: 610 millis (20 runs).
Swing on Java L&F (Ocean)
Java Version: 1.6.0-rc
Look & Feel: The Java(tm) Look and Feel
Time to Show: 360 millis.
Benchmark Run Time: 16250 millis.
Average Run Time: 812 millis (20 runs).
