Qt 架構的圖形效能高,網路效能低,開發效率高——Qt中分為好幾套圖形系統,差不多代表了2D描畫的發展史。最經典的軟描畫系統

來源:互聯網
上載者:User

標籤:


~~~~~圖形效能部分~~~~~
Qt的widgets部分,運行時的映像渲染效能是一般的,因為大部分的介面內容都是Qt自繪,沒有走硬體加速,也就是說很多圖形內容都是CPU算出來的。
但是widgets底層畢竟是C++,而且Qt的模組寫的也不錯,做過很多最佳化,這個渲染的效能在案頭上與有硬體加速的架構比差別不大,除非是有很多動畫的複雜情境才能看出區別。
不過在手機上或者嵌入式上,就會明顯覺得widgets的渲染效能低了。

那麼怎麼辦呢,Qt是不會抱死在widgets一個架構上的。所以Qt推出了Quick和QML。
Quick是可以走硬體加速,各個平台都可以,而且支援OpenGL或OpenES。圖形渲染效能非常強悍。
而且架構本身是類js的開發語言QML,開發效率也非常高。
目前Qt正在開發Controls2.x,這是Quick中主要的控制項陳列庫,比現在的1.x效能又是成倍的提升。

有些人說Quick載入慢,我想說,把QML檔案(包括Controls這些庫層級的)直接編譯進qrc檔案,然後開QML編譯器,載入速度66的。


~~~~~網路效能部分~~~~~
先說TCP部分的伺服器,就是QTcpServer
這個模組效能是不強悍的,甚至連中等效能水平都到達不了(C++)。
這主要體現在兩部分,第一是並發很低,這和Qt用的事件迴圈底層有關,超過800長連結就不穩定,超1000基本沒法正常使用。第二是資料轉送效能低,大約傳輸相等的資料量,比ASIO要多至少一倍CPU佔用。
但是畢竟是C++,效能相比其他語言還是可以的,開發小規模的伺服器,是沒問題的。

再說說UDP伺服器,就是QUdpSocket
前段時間做一個項目,要求用UDP接收大量資料,是每包1400位元組資料,每秒4w包,大約相當於500M的頻寬。
然後我先是用Qt做開發,然後各種丟包,最後簡化到單獨線程死迴圈接收,接收後甚至不做任何處理直接回去接收下一個包。這樣,也只能每秒收7000個左右。
額,這丟了80%多,親,不給力啊。
然後換了ASIO,也只能接到1.3w個,親,還是不給力啊。
後來換了WinPcap,輕鬆拿下4w個而且一個不丟,終於給力了。 ---------------------------------------------------------------------------------------開發效率還是運行效率?一般效率指這兩項為多,後者更多用效能來表達。
開發效率在C++庫中絕對是高的,Qt內建的一套非常完備,應有盡有。
運行效率的話,在Qt中分為好幾套圖形系統,差不多代表了2D描畫的發展史。最經典的軟描畫系統,效能只能說差強人意,而搭建在OpenGL上的新系統效率就高的多。而且,作為原生C++語言(QML除外),天生在效能上也有加成。 連結:http://www.zhihu.com/question/37444226/answer/71999921 ---------------------------------------------------------------------------------------

簡單的說就是:如果你的項目沒有跨平台需求,那麼不建議使用Qt開發Android或者iOS或者WP的app為什麼這麼說,因為如果要開發一個單平台相同品質(能不能到相同品質還有待權衡)的移動端app,用Qt相比原生架構往往需要更多開發量。如果相同的開發量,往往意味著更平庸的軟體品質。但是如果是跨平台,Qt的優勢就體現出來了。可以理解為1.1份的開發獲得2份平台的結果或者1.2份的開發或者3份平台的結果。我目前用Qt開發了Windows、OS X、Linux、iOS(11款已上架)、Android、WP(1款已上架)的用戶端。Linux、WindowsServer的伺服器端。對我而言,我發揮了Qt跨平台的特點,降低了總體的開發量。而且也降低了各個平台開發的入門門檻以及學習成本。可以說一份代碼,幾乎不需要更改就可以編譯到另外一個平台是非常爽的。對了,如果是案頭端的程式,哪怕只部署到一個平台,Qt也具備高開發效率、高品質等特點。移動端畢竟還需要很多的改進。

連結:http://www.zhihu.com/question/37331229/answer/71555381

Qt 架構的圖形效能高,網路效能低,開發效率高——Qt中分為好幾套圖形系統,差不多代表了2D描畫的發展史。最經典的軟描畫系統

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.