5

TTF フォントをロードし、drawStringGraphics2D のメソッドを使用する Java アプリケーションを作成しました。これは 50 ミリ秒ごとに呼び出され、x と y の位置が毎回変更され、テキストが移動します。Windows でプログラムを実行すると、CPU 使用率が 0 ~ 1% になりますが、Mac では約 75% の使用率になります。この Windows マシンの CPU は確かに優れていますが、それほど大きな違いがあるはずはありません。ハードウェアアクセラレーションに関係していると思います。それを有効にする方法を知りたいです。Mac 固有の Java プロパティをいくつか見つけましたが、どれも CPU 使用率を下げませんでした。OS X で Java 2D のパフォーマンスを向上させる方法はありますか? ありがとう。

EDIT1:これらのプロパティが役立つと思いましたが、そうではありませんでした。

System.setProperty("sun.java2d.opengl", "true"); System.setProperty("apple.awt.graphics.UseQuartz","true"); System.setProperty("apple.awt.graphics.EnableQ2DX","true");

EDIT2:プロジェクトのソースとバイト コードをここからダウンロードできます: http://drop.io/ExampleScreenSaver

EDIT3: drop.io が存在しなくなったため、プロジェクトをGoogle Codeにアップロードしました。これで、ダウンロードせずにコードを参照できます。私はまだこの問題にアプローチする方法がわからないので、助けていただければ幸いです。

4

3 に答える 3

2

「jvisualvm」でプロファイラーを実行して、時間がどこに行くかを特定します。

于 2010-07-03T09:55:48.117 に答える
1

Apple JVM のフォント処理は MacOS X に固有のものです。たとえば、現在のフォントで文字のグリフが見つからない場合、JVM は別のフォントを探してその文字を表示します。また、アンチエイリアスはデフォルトで有効になっています (比較する場合は、Windows で有効になっていることを確認する必要があります)。私は、Apple の実装がより多くの CPU を使用していることに驚きません。

于 2011-05-12T07:53:00.873 に答える