婉兮清扬

案上诗书杯中酒之快意人生

你快?我慢?

发表时间:2006-06-19 16:45:43
James Bai的Blog上,有一些用户追问NetBeans和Eclipse的快慢问题,不小心又八卦了一把,抄录如下。

--

IDE -- 尤其是Java的IDE -- 的快慢,是一个用户体验上的概念,很难用benchmark数据来说明。一般来说我们在评价一个IDE的快慢的时候,通常是指如下几个参数:(1)启动速度,(2)键盘鼠标的反应速度,和(3)编译、执行、调试过程的快慢。


Eclipse 启动的快慢跟装载插件的数量有很大的关系,而不同的开发人员(例如说SE, EE, ME)工作中所需要的插件是不一样的,因此使用Eclipse的开发人员对Eclipse启动过程的体验是很不一样的。而NetBeans缺省地集成了大 部分SE, EE, ME的常用插件,因此其启动过程相对较长 -- Eclipse的拥护者可以把这当作是NetBeans比Eclipse更慢的证据,但是这个证据只在这种功能极不对等的情况下有效。在装载了开发SE, EE, ME所需的大部分常用插件之后,如上证据就不再有效甚至是变成反面证据了 -- 不过为了公平起见,我必须说很难对NetBeans/Eclipse的启动过程进行量化的比较。

如 果追溯到源头的话,NetBeans/Eclipse的启动速度之争,基本上就等价于SWING/AWT和SWT之间的快慢之争了。目前尚未见到 SWING/AWT和SWT之间的性能比较数据,但是常见的观点是SWING/AWT在多个操作系统上(Windows, Linux)的性能基本上是一致的,而SWT在Linux上的性能明显要远差于在Windows上的性能。这个差异可以通过在不同的操作系统上第一次启动 Eclipse/NetBeans的时间长短上看出来 -- 在同样硬件配置的情况下,在Windows/Linux上第一次启动NetBeans所需要的时间是相当的,而在Linux上第一次启动Eclipse所 需要的时间则明显比在Windows上第一次启动Eclipse所需要的时间更长。

不 过,在大多数的工程实践中,IDE的启动时间只占工作时间中很小的一部分 -- 即使你需要频繁地启动IDE,由于Java应用程序在第二次启动的时候往往比第一次启动要快很多,不管是Eclipse还是NetBeans都能够在很短 的时间内完成启动过程 -- 所以这种启动速度的快慢并没有实质性的意义。

在 键盘鼠标反应速度方面,在我们还在使用JDK 1.3的时代,SWING/AWT在Windows平台上的表现确实比SWT的表现要差。同理,在NetBeans 3.5的年代,NetBeans的键盘鼠标反应速度都比Eclipse要逊色很多。但是,目前SWING/AWT的性能已经比以往有了大幅度的提高,在 Windows平台上SWING/AWT和SWT之间的性能差异几乎是微乎其微,因此最新版本的NetBeans和Eclipse在Windows平台上 的键盘鼠标反应速度上基本上没有明显的区别。不过,如果你使用Linux操作系统作为开发平台的话,NetBeans的键盘鼠标反应速度则明显要优于 Eclipse。

在 撇除了键盘鼠标的响应速度之外,IDE在编译、执行、调试环节的性能,取决于底层虚拟机的性能。在通常情况下,NetBeans缺省地使用Sun 公司的虚拟机,而Eclipse可以在多个虚拟机之间进行选择(比较常见的情况是使用J9)。Java虚拟机的性能是一个比较复杂的问题,已经远远超出了 我个人的见识范围,因此不打算进行任何评论。唯一可以确定的一点是,在使用相同的虚拟机的情况下,Eclipse和NetBeans在编译、执行和调试时 候的性能应该是近似的 -- 如果一定要说有不同的话,那就是他们在启动虚拟机的时候使用参数的不同导致了某些细微的差别。

说了半天,仍然要归结到我们最开始的那句话上 -- IDE的快慢是一个用户体验的问题,需要你自己去体会。除非你使用的是Linux,在那里NetBeans明确无误地是比Eclipse更好的选择。

不过,作为一个从Eclipse “叛变”过来的NetBeans用户,我确实非常喜欢Sun 中国技术社区在NetBeans下载页面上的那句话:一旦试用,便再也不会放弃。
上一篇 下一篇

 
姓名:
评论:

请输入下面这首诗词的作者姓名。

锦瑟无端五十弦,一弦一柱思华年。
庄生晓梦迷蝴蝶,望帝春心托杜鹃。
沧海月明珠有泪,蓝田日暖玉生烟。
此情可待成追忆?只是当时已惘然。

答案:

云与清风常拥有,
冰雪知音世难求。
击节纵歌相对笑,
案上诗书杯中酒。

蒋清野
2000.12.31 于 洛杉矶