更快:SWT还是Java2D?

时间:2010-06-18 18:30:47

标签: swt java-2d

哪个具有更快的图形性能:SWT或Java2D?

在MacOSX上,SWT的图形是否通过Quartz Extreme,而Quartz Extreme又是使用硬件加速的OpenGL渲染的?

我不是指本机UI控件,而是询问自定义2D图形渲染,如文本,线条,曲线和多边形。

2 个答案:

答案 0 :(得分:3)

两者都使用平台的图形API

Java Swing和SWT采取相反的方法。

Java Swing使用Java2D绘制其小部件和自定义绘图,这是一个跨平台的图形API,它抽象了底层平台的图形API。现在Java2D的性能取决于性能和性能。 Platform的Native API的效率。

SWT使用平台的本机图形API进行自定义绘图,并使用平台的本机GUI API(如果存在)绘制其小部件。现在需要注意的是,对于大多数平台而言,GUI API本身使用平台的图形API来绘制小部件。

图形表示

All Depends on the Graphics API


正如您所看到的,最终所有依赖于Platform的Graphics API。所以两者都提供或多或少相同的性能和速度。

一些例外

有一些例外,可能会影响或不影响表现。

  • Java Swing尽可能地使用纯Java代码,这可以提高性能。
  • 在某些平台上,除了平台的默认值之外,Java2D可能会使用更好,更快的API,例如它在Windows上支持Direct3D。
  • 在某些情况下,SWT所依赖的本机代码可能比使用Java2D抽象更快。

答案 1 :(得分:1)

我的理论,SWT应该更快,因为它直接使用本机UI实现。

但实际上,这完全取决于每个平台上的SWT和SWING实现。

根据我的经验,SWT在Windows中速度更快,但在Mac OS X上速度并不快。