UI領域, 若是是桌面應用,QML能夠更快速。若是是手機UI,H5絕對佔優。性能
移動設備已經爲各行業的HMI的響應性和用戶友好性設定了標準。汽車,醫療設備,工業自動化系統和消費電子產品製造商如今但願爲其嵌入式設備複製這種出色的用戶體驗。想找出咱們應該選擇哪一種技術策略,其實咱們徹底能夠作一個測試,一位開發人員被分配160小時,使用Qt和QML 建立嵌入式系統的演示應用程序,使用相同的小時數來建立使用HTML5的等效應用程序。測試
畢竟Qt提供的那一套控件庫更適合桌面應用,而當年諾基亞都開發了塞班和米果的QML手機控件庫,如今Ubuntu,旗魚,黑莓都有本身的QML手機控件庫。
渲染性能上。QML有絕對統一的接口規範以及渲染機制。(跨平臺是這樣的)。 H5桌面系統一套,就谷歌作的好。手機WebKit嗯,可是系統對WebKit的支持也不能說表現同樣。
接下來我來講說QML吧。 QML的執行引擎是基於Qt的V4引擎,V4最大的改變就是添加了類型。ui
添加了類型讓QML的屬性綁定相比於以前的版本(Qt4的QtQuick 1.x)有極其大的提高。 屬性綁定(數據綁定,表達式綁定)。嗯,在QML中隨處可見的屬性綁定,雖然有H5中有相似數據綁定的JS庫。但QML語法上就支持了。
QML的渲染方式相較於以前的版本也有了重大的更新。 以前的版本(Qt4的QtQuick 1.x)更接近widget,雖然是Griphics/view,可是渲染更可能是優先提交給cpu處理。固然,在N9(嗯,第一個徹底使用QML構造應用的系統),會使用gpu,有硬件加速嘛。
如今的QML渲染方式更傾向於優先使用顯卡。(因此如今使用QML須要良好的顯卡支持,例如正確安裝顯卡驅動)。
簡單扯扯如今QML的渲染繪製機制吧。
spa
1. 基於事件的,基於Griphics/secen
2. 有兩個線程,一個繪製,一個渲染。
3. cpu負責繪製,gpu負責渲染。
4. 當須要重繪時,繪製線程暫停,渲染線程進行渲染,渲染完畢,繪製線程啓動,繪製。 線程
嗯,上面那個我是看Qt英文文檔,本身理解的,敘述有出入。 此外,Qt正在開發的Qt3D,類比WebGL,其性能以及可部署性遠大於H5的WebGL,嗯,是個重型武器。其實也反應出了QML渲染和繪製的效率。接口