1

JavaFX 2 WebView は WebKit を使用してレンダリングします。私のマシンは直接 3D をサポートしておらず、プリズム ログで確認できます

Loading D3D native library ...
    succeeded.
Direct3D initialization failed
Adapter validation failed for all adapters
(X) Got class = class com.sun.prism.d3d.D3DPipeline
Prism pipeline name = com.sun.prism.j2d.J2DPipeline
(X) Got class = class com.sun.prism.j2d.J2DPipeline
Initialized prism pipeline: com.sun.prism.j2d.J2DPipeline
GraphicsPipeline.createPipeline: error initializing pipeline com.sun.prism.d3d.D3DPipeline
*** Fallback to Prism SW pipeline

読み込まれた html ページのスクロール速度が非常に遅い。Chrome(WebKitも使用)を使用して同じマシンで同じページをスクロールすると、十分に高速です.

ページの内容はほとんどテキストです。ヒーブ Java スクリプトはなく、単純な静的です。

いくつかの設定をオンにする必要がありますか、それとも単純に Prism SW パイプラインが、Chrome で線や画像を描画するために使用されるものよりもはるかに遅いですか?

OS Windows7

DirectDraw アクセラレーション: 利用不可
Direct3D アクセラレーション: 利用不可
AGP テクスチャ アクセラレーション: 利用不可

4

1 に答える 1

2

JavaFX 2.2WebViewで使用されるPrismSWパイプラインは、Chromeで線や画像を描画するために使用されるものよりもはるかに低速です。

速度低下の原因となる特定のWebページがある場合は、それらをJavaFXパフォーマンスの問題としてログに記録できます。

JavaFXレンダリングの上限は60fpsであり、この上限を削除できるドキュメント化されていないプロパティがありますが、とにかく肉眼でそのことに気付くことはありません。

システムプロパティを使用して、ハードウェアパイプラインのオンとオフを切り替えることもできます。現在、ハードウェアパイプラインを使用していません。これは、ハードウェアアクセラレータがJavaFXでサポートされていないことが原因である可能性があります。文書化されていないスイッチを使用して、ハードウェアアクセラレーションパイプラインを強制的にオンにすることもできますが、予期しない結果が生じる可能性があります。

WebViewテキストのレンダリング速度に影響を与える可能性のあるテキストフォントスムージングプロパティがあります。WebViewでこのプロパティのオンとオフを切り替える方法がわかりません。

jdk8の場合、コアJavaFXレンダリングWebViewレンダリングのパフォーマンスが大幅に向上します。これには、Chromeで使用されるシェイプクリップGPUアクセラレーション合成などが含まれます。繰り返しになりますが、ソフトウェアパイプラインを実行しているため、ハードウェアアクセラレーションによる合成の影響は見られませんが、他のjdk8の変更によってパフォーマンスが向上するはずです。JavaFXの最新開発バージョンを含むjdk8のプレビューバージョンを入手して、パフォーマンスが向上するかどうかを確認できます。

WebViewのパフォーマンスが重要な場合はJavaFX32ビットバージョンを使用してください。このバージョンでは現在JavaScriptJITコンパイラがオンになっていますが、64ビットバージョンではオンになっていないためです。レンダリング速度に違いはありませんが、全体的な知覚速度に影響を与える可能性があります。jdk8のリリースバージョンは新しいJavaScriptエンジンを使用し、32ビットリリースと64ビットリリースの両方でパフォーマンスが向上するはずです。

もちろん、互換性のあるハードウェアカードを追加すると、JavaFXは高速レンダリングパスを使用し、レンダリングパフォーマンスも向上するはずです。

于 2012-11-28T11:53:13.037 に答える