2

グラフィックパフォーマンスが速いのはSWTとJava2Dのどちらですか?

MacOSXでは、SWTのグラフィックスはQuartz Extremeを通過し、Quartz ExtremeはハードウェアアクセラレーションされたOpenGLを使用してレンダリングされますか?

ネイティブUIコントロールについては言及していませんが、テキスト、線、曲線、ポリゴンなどのカスタム2Dグラフィックスレンダリングについて質問しています。

4

2 に答える 2

3

どちらもプラットフォームのグラフィック API を使用

Java Swing と SWT は反対のアプローチをとっています。

Java Swing は、ウィジェットの描画とカスタム描画の両方に Java2D を使用します。これは、基盤となるプラットフォームのグラフィック API を抽象化するクロスプラットフォーム グラフィック API です。現在、Java2D のパフォーマンスは、プラットフォームのネイティブ API のパフォーマンスと効率に依存しています。

SWT は、プラットフォームのネイティブ グラフィックス API をカスタム描画に使用し、プラットフォームのネイティブ GUI API (存在する場合) をウィジェットの描画に使用します。ここで注目すべき点は、ほとんどのプラットフォームでは、GUI API 自体がプラットフォームのグラフィックス API を使用してウィジェットを描画するということです。

グラフ表示

すべてグラフィック API に依存


ご覧のとおり、最終的にはすべてプラットフォームのグラフィックス API に依存します。したがって、どちらも多かれ少なかれ同じパフォーマンスと速度を提供します.

一部の例外

パフォーマンスに影響する場合と影響しない場合があるいくつかの例外があります。

  • Java Swing は、純粋な Java コードを可能な限り使用します。これにより、パフォーマンスが向上する可能性があります。
  • 一部のプラットフォームでは、Java2D は、プラットフォームのデフォルトに加えて、より優れた高速な API を使用する場合があります。たとえば、Windows で Direct3D をサポートします。
  • SWT が依存するネイティブ コードは、場合によっては、Java2D 抽象化を使用するよりも高速であることが証明される場合があります。
于 2012-02-25T18:11:10.757 に答える
1

理論的には、SWTはネイティブUI実装を直接使用するため、より高速になるはずです。

しかし実際には、それはすべて各プラットフォームでのSWTとSWINGの実装に依存します。

私の経験では、SWTはWindowsの方が高速ですが、MacOSXの方が高速ではありません。

于 2010-06-18T18:31:47.550 に答える