1

JavaFX 2 WebView 使用 WebKit 进行渲染。我的机器没有直接的 3d 支持,我可以在 prism 日志中看到它

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 中用于绘制线条和图像的任何东西都要慢得多?

操作系统视窗 7

DirectDraw 加速:不可用
Direct3D 加速:不可用
AGP 纹理加速:不可用

4

1 回答 1

2

JavaFX 2.2 WebView 使用的 Prism SW 管道比 Chrome 中用于绘制线条和图像的任何管道都要慢得多。

如果有特定的网页导致速度变慢,您可以将它们记录为JavaFX 性能问题

JavaFX 渲染的上限为 60fps,并且有一个未记录的属性可以删除此上限,但无论如何您都不应该用肉眼注意到这一点。

您还可以使用系统属性打开和关闭硬件管道。您现在没有使用硬件管道,这可能是因为 JavaFX 不支持您的硬件加速器。您可以使用未记录的开关来强制启用硬件加速管道,但这会产生无法预料的后果。

有一个文本字体平滑属性可能会影响 WebView 文本呈现速度。我不确定如何为 WebView 打开和关闭此属性。

对于 jdk8,核心 JavaFX 渲染WebView 渲染有许多性能改进- 包括Chrome 中使用的形状剪辑gpu 加速合成等内容。同样,当您运行软件管道时,您不会看到硬件加速合成的影响,但您仍然应该能够从其他 jdk8 修改中获得一些性能改进。您可以获得jdk8 的预览版,其中包括 JavaFX 的后期开发版本,并查看您的性能是否有所提高。

如果 WebView 性能至关重要,请使用 JavaFX 32 位版本,因为该版本当前打开了 JavaScript JIT 编译器,而 64 位版本没有。它不会对渲染速度产生影响,但可能会影响整体感知速度。jdk8 的发布版本将使用一个新的 JavaScript 引擎,它应该会看到 32 位和 64 位版本的性能提高。

当然,如果添加兼容的硬件卡,那么 JavaFX 会使用加速渲染路径,渲染性能也会有所提升。

于 2012-11-28T11:53:13.037 回答