2012-11-28 60 views
1

JavaFX 2 WebView使用WebKit进行渲染。我的机器不能直接支持3D,我可以看到它在棱镜日志javafx 2.2 webview滚动速度很慢(2D渲染)

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)在同一台机器上滚动相同的页面也足够快。

该页面的内容大部分是文本。没有heave java脚本,简单的静态。

我是否需要打开一些设置,或者它只是简单地将Prism SW管道的速度比Chrome中用来绘制线条和图像的速度慢得多?

操作系统Windows 7

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

回答

2

棱镜SW管道由所使用的JavaFX 2.2 WebView比用于绘制线条和图像的Chrome浏览器要慢得多。

如果有特定的网页导致速度减慢,您可以将它们记录为JavaFX performance issues

JavaFX渲染被限制在60fps,并且有一个无证的属性可以删除这个帽子,但是你不应该用肉眼真正注意到这一点。

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

有一个text font smoothing property这可能会影响WebView文本渲染速度。我不确定如何打开和关闭WebView的这个属性。

对于jdk8,core JavaFX rendering以及WebView rendering有许多性能改进 - 包括诸如Chrome中使用的shape clipsgpu accelerated compositing之类的内容。同样,当你运行一个软件流水线时,你不会看到硬件加速合成的影响,但你应该能够从其他jdk8修改中获得一些性能改进。您可以获得一个preview version of jdk8,其中包含JavaFX的后期开发版本,并查看您的性能是否提高。

如果WebView性能至关重要,则使用JavaFX 32位版本,因为该版本当前已启用JavaScript JIT编译器,而64位版本不支持。它对渲染速度没有任何影响,但它可能会影响总体感知速度。 jdk8的发布版本将使用new JavaScript Engine,这会让32位和64位版本的性能得到提升。

当然,如果您添加兼容的硬件卡,那么JavaFX将使用加速的渲染路径,并且渲染性能也应该得到改善。

+0

这是很多的信息。谢谢。 我想我的视频驱动程序仅限于Citrix虚拟卡。我们使用一种虚拟电脑。 该页面基本上是任何页面,当我用滚轮或滚动条滚动时,我看到滞后。特别是当我使用jQuery来自动滚动,这在Chrome中就像一个魅力。我认为这是一个渲染问题,而不是与java脚本相关的问题。 为了实验的目的,我将检查Java 8,但是我无法将它用于最终的应用程序。 –