2012-05-05 7 views
4

多分、そこに誰かがこれに時間を費やしています。私はJavaでグラフの視覚化libに取り組んでおり、私はちょうどいくつかのパフォーマンステストを行った。Java2D/Graphics2Dのパフォーマンス

1000〜3000エッジで接続された約2000個の頂点を追加すると、実際には非常に遅くなります。そこに道をうまくやっているツールがあります(例えばgephi)。どうやってそれをしますか? Java2Dハードウェアはデフォルトで高速化されていませんか? OpenGLライブラリを使用する必要がありますか?

私は数ミリ秒ごとにタイマーによって再描画されるJComponentの中にグラフを描画しています(100ミリ秒または1ミリ秒を与えると、それは本当に遅くなります)。

私のアプローチに欠陥がありますか、これに対してJava2Dを使用しないでください。

ありがとうございました!

+2

あなたのコードを正式にプロファイリングして、レンダリングがボトルネックであることを知っていますか?もしそうでなければ、私はこれを第一歩としてやっています。 –

+3

すべてを決して再描画しません。それは不可能です。できるだけキャッシュしてください。 –

+0

@Hovecraft:私は月曜日に帰るとすぐにこれをやります。 –

答えて

0

Toriousは、ハードウェアアクセラレーションの利点を得るためにJava2Dで作業している場合はおそらくVolatileImageを使用することを推奨します。

しかし、絶対最大限のパフォーマンスを望むなら、おそらくOpenGLベースのソリューションのほうが良いでしょう。

LWJGL(http://lwjgl.org/)は、ゲーム用に設計されていますが、関連するOpenGLの機能をすべて使用できるため、視覚化にも非常に適しています。試してみる価値があるかもしれません!

関連する問題