Производительность WebView в JavaFX

У меня есть пользовательский интерфейс HTML5 и серверная часть Java, и я хочу избежать перестройки пользовательского интерфейса HTML на обычном Java, поэтому я решил запустить локальный веб-сервер и использовать веб-представление для его отображения в & quot; native & quot; окно. Похоже, что решение заключается в использовании JavaFX WebView, который может быть встроен в Swing. На бумаге это звучит великолепно (тем более, что они утверждают, что используют WebKit, который имеет значительно лучшую производительность для моего пользовательского интерфейса в Chrome / Safari).

Это работает, но: производительность НЕВЕРОЯТНО ПЛОХА. На порядок медленнее, чем то же самое в Chrome, Safari (или даже медленнее Firefox). Это буквально непригодно (мой пользовательский интерфейс довольно интенсивно использует JQuery / JS). Кстати, я использую код изэта почта.

Вопрос в том:

Can anybody second my experience? Am I simply doing something wrong or is this caused by JavaFX and thus "normal"?

Any better idea how to achieve this? I am currently simply firing up the system browser which works but is not as nice (does not look as integrated). 

Ответы на вопрос(5)

и обычно производительность была превосходной и очень удобной.

Соответствие html5 - это хорошо.роизводительность @JavaScript варьируется, но я нашел примерно одну треть скорости последней версии Chrome в соответствии с тестом Google V8 (на который, вероятно, настроен Chrome). Производительность рендеринга не была большой проблемой. Очень интенсивные веб-приложения HTML, такие как некоторые из экспериментальной библиотеки Chrome, запускались не так быстро, как в некоторых других браузерах.WebGL не поддерживается, поэтому сайты, которые используют программную визуализацию графики из WebGL, работают намного медленнее.

Самая большая проблема, с которой я столкнулся при работе с WebView, заключается в том, что он не так стабилен для передовых функций и интенсивного использования, как другие браузеры, но на самом деле не вызывает серьезных проблем с производительностью.

Вот несколько тестов статистики (используемая версия WebView была взята из JavaFX 2.2 build 9):

Соблюдение

Бегущий Html5 тест для проверки соответствия html5 (баллы из 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

Бегущий Кислоты3 test, webview получил 100/100 баллов, как и другие тестовые браузеры, но, как и в IE9, окончательный рендеринг имеет небольшой недостаток.

Javascript

Sunspider Тест Javascript (чем ниже, тем лучше):

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

Google V8 Тест Javascript (чем выше, тем лучше):

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

Mozilla Kraken Тест Javascript (чем ниже, тем лучше):

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

Интенсивный холст

Шпиннинг 3D Будда (чем выше, тем лучше):

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

JQuery

JQuery Test Suite выполнение (чем ниже, тем лучше):

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

Основываясь на вышеупомянутых тестах (запущенных на моем рабочем столе Windows 7), если WebView достаточно стабилен и функционален для вас, производительность WebView по сравнению с другими браузерами не должна быть проблемой (если ваше приложение не имеет большого количества функций). 3D вращающихся будд ...: -).

Обновит

Как говорится в ответе Юты, JIT-компилятор JavaScript включен для 32-битной сборки JavaFX 2.2 и @ для Woff для 64-битной сборки Win JavaFX 2.2. Это означает, что тесты JavaScript WebView значительно медленнее (обычно в 4-5 раз медленнее) при работе 64-битной версии JavaFX по сравнению с 32-битной версией JavaFX.

иной вашей проблемы.

по которой JavaFX webView работает медленнее, заключается в том, что в отличие от веб-браузера он ничего не кэширует. Это должно быть дополнено.

ельность, проблемы с перерисовкой) для моего веб-сайта https: //mdemo.cqg.co). После некоторого поиска в Google я наткнулся на тему Интеграция JavaFX 2.0 WebView в приложение Swing Java SE 6. Среди ответов есть предложение использовать JxBrowser http: //www.teamdev.com/jxbrowse) - компонент Swing / JavaFX для Java на основе Chromium. Я попробовал это для моего сайта. Сайт работал хорошо - нет проблем с медлительностью и перерисовкой (что происходит в оригинальном WebView).

мотром и Google Maps. Вы можете увидеть ссылку ниже. На данный момент у меня нет ответа для вас, и это очень неприятно, я знаю ...

Некоторые примеры моего поста: -https: //community.oracle.com/message/1235616

Повторите это, если можете: -https: //javafx-jira.kenai.com/browse/RT-3321

https: //javafx-jira.kenai.com/browse/RT-2912

ВАШ ОТВЕТ НА ВОПРОС