Performance of WebView in JavaFX

前端 未结 5 405
感情败类
感情败类 2020-12-02 11:30

I have a HTML5 UI and a Java backend and want to avoid rebuilding the HTML ui in plain java, so my idea was to run a local webserver and use a webview to render it in a \"na

相关标签:
5条回答
  • 2020-12-02 11:56

    I have used WebView quite a bit and usually the performance was perfectly fine and very usable.

    • Html5 compliance is good.
    • JavaScript performance varies but I found it about one third the speed of a recent version of Chrome according to Google's V8 benchmark (which Chrome is presumably tuned against).
    • Rendering performance didn't seem to be much of an issue.
    • Very intensive HTML Webapps such as some in the Chrome experiment library did not start up as quick as in some other browsers.
    • WebGL is not supported so sites which fall back to software rendering of graphics from WebGL are much slower.

    The biggest issue I had with WebView is that it is not quite as stable for cutting edge features and intensive use as other browsers, but not really any serious performance issues.

    Here are a few benchmark stats (WebView version used was sourced from JavaFX 2.2 build 9):

    Compliance

    Running a html5 test to test html5 compliance (scores out of 500):

    Chrome 19      402 + 13 bonus points
    Firefox 12     345 +  9 bonus points
    WebView 2.2b9  296 +  7 bonus points 
    IE 9.0.6       138 +  5 bonus points
    

    Running an acid3 test, webview scores 100/100 same as the other test browsers, but, like IE9, the final rendering has a slight imperfection.

    Javascript

    Sunspider Javascript benchmark (lower is better):

    IE 9.0.6       146.7ms 
    Chrome 19      151.5ms
    Firefox 12     185.8ms
    WebView 2.2b9  199.5ms 
    

    Google V8 Javascript benchmark (higher is better):

    Chrome 19      15323
    Firefox 12     9557
    WebView 2.2b9  5145
    IE 9.0.6       3661
    

    Mozilla Kraken Javascript benchmark (lower is better):

    Chrome 19      2416.8ms
    Firefox 12     2112.9ms
    WebView 2.2b9  7988.9ms
    IE 9.0.6       9403.0ms
    

    Intensive Canvas

    Spinning 3D buddha (higher is better):

    Chrome 19      60fps
    Firefox 12     43fps
    IE 9.0.6       16fps
    WebView 2.2b9  7fps
    

    JQuery

    JQuery test suite execution (lower is better):

    Chrome 19      21826ms
    WebView 2.2b9  22742ms
    Firefox 12     23554ms
    IE 9.0.6       28247ms
    

    Based on the above benchmarks (run on my Windows 7 desktop), as long as WebView is stable and functional enough for you, then performance of WebView vs other browsers should not be an issue (as long as your app does not feature a lot of 3D spinning buddhas . . . :-).

    Update

    As uta's answer states, the JavaScript JIT compiler is switched on for the Win 32 bit build of JavaFX 2.2 and off for the Win 64 bit build of JavaFX 2.2. This means that WebView JavaScript benchmarks are significantly slower (typically 4 to 5 times slower) when running the 64 bit JavaFX version vs the 32 bit JavaFX version.

    0 讨论(0)
  • 2020-12-02 11:58

    I also encountered JavaFX WebView poor performance (slowness, repaint issues) for my website (https://mdemo.cqg.com). After some googling I came across the topic Integrating JavaFX 2.0 WebView into a Swing Java SE 6 Application. Among the answers there is a proposal to use JxBrowser (http://www.teamdev.com/jxbrowser) -- Chromium-based Swing/JavaFX component for Java. I tried it for my site. Site performed well -- no slowness nor repaint issues (that happen in original WebView).

    0 讨论(0)
  • 2020-12-02 12:01

    One reason that JavaFX webView appears to be slower is because unlike a web browser it does not cache anything. This has to be inplemented.

    0 讨论(0)
  • 2020-12-02 12:04

    JavaScript JIT is switched off in WebNode for Windows x64. That could be a reason of your problem.

    0 讨论(0)
  • 2020-12-02 12:11

    You are not alone in this situation. I still have problem with the webview and google maps. You can see the link below. For the moment I do not have any answer for you and it's very unpleasant I know ...

    Some examples of my post : - https://community.oracle.com/message/12356161

    Upvote this if you can : - https://javafx-jira.kenai.com/browse/RT-33217

    • https://javafx-jira.kenai.com/browse/RT-29123
    0 讨论(0)
提交回复
热议问题