2012-11-28 59 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,但是我無法將它用於最終的應用程序。 –