【发布时间】:2012-02-26 02:11:10
【问题描述】:
哪个图形性能更快:SWT 还是 Java2D?
在 MacOSX 上,SWT 的图形是否通过 Quartz Extreme,而后者又使用硬件加速的 OpenGL 进行渲染?
我不是指本机 UI 控件,而是询问自定义 2D 图形渲染,如文本、线条、曲线和多边形。
【问题讨论】:
哪个图形性能更快:SWT 还是 Java2D?
在 MacOSX 上,SWT 的图形是否通过 Quartz Extreme,而后者又使用硬件加速的 OpenGL 进行渲染?
我不是指本机 UI 控件,而是询问自定义 2D 图形渲染,如文本、线条、曲线和多边形。
【问题讨论】:
Java Swing 和 SWT 采用相反的方法。
Java Swing 使用 Java2D 来绘制它的小部件和自定义绘图,这是一个跨平台的图形 api,它抽象了底层平台的图形 api。现在 Java2D 的性能取决于平台的 Native API 的性能和效率。
SWT 使用平台的本机图形 API 进行自定义绘图,并使用平台的本机 GUI API(如果存在)来绘制其小部件。现在要注意的一点是,对于大多数平台,GUI API 本身使用平台的图形 API 来绘制小部件。
如您所见,最终都依赖于平台的图形 API。所以两者都提供或多或少相同的性能和速度。
有一些例外情况可能会或可能不会影响性能。
【讨论】:
我的理论是,SWT 应该更快,因为它直接使用原生 UI 实现。
但实际上,这完全取决于每个平台上的 SWT 和 SWING 实现。
根据我的经验,SWT 在 Windows 中速度更快,但在 Mac OS X 上并不快。
【讨论】: