Canvas的渲染效率對比與優化


在HTML5的Canvas渲染中,主要就用到2個函數:setTransformdrawImage,可以優化的空間幾乎為0。在本文中,我們主要考量下在android和ios下,如果單純的使用Canvas渲染可以制作什么量級的游戲。

原來我想拿微信自帶瀏覽器,而非QQ自帶瀏覽器,但由於在android下微信瀏覽器波動非常的大(甚至超過一個數量級),因此就放棄了。

android測試環境

華為Mate7,QQ自帶瀏覽器和Chrome
源圖片大小:143*143,目標大小:143*143
畫布:400 *800
結論:

  • 源圖片為純色與復雜圖片時,無差別
  • 目標圖片繪制大小放大5倍時,無差別
  • 圖片縮放,無差別
  • 圖片旋轉時,渲染時長大概增加了25%
  • Chrome瀏覽器的渲染效率,是qq內置瀏覽器的2倍左右

下表中,右側數值為渲染的耗時(單位:毫秒)

圖片數量 不旋轉(qq) 旋轉(qq) 不旋轉(Chrome) 旋轉(Chrome)
100 14 17 9 10
150 18 24 11 12
200 24 30 13 14
400 44 55 23 22
600 64 78 33 34
1000 104 129 48 55

iPhone測試環境

iPhone6,QQ自帶瀏覽器和Safari
源圖片大小:143*143,目標大小:143*143
畫布:400 *800
結論:

  • 源圖片為純色與復雜圖片時,無差別
  • 目標圖片繪制大小放大5倍時,無差別
  • 圖片縮放,無差別
  • 圖片旋轉時,渲染時長變化幾乎可忽略
  • Safari瀏覽器的渲染效率,是qq內置瀏覽器的1.5倍左右

下表中,右側數值為渲染的耗時(單位:毫秒)

圖片數量 不旋轉(qq) 旋轉(qq) 不旋轉(Safari) 旋轉(Safari)
100 5 5 3 3
150 6 6 4 4
200 7 7 4 4
400 8 8 6 6
600 10 10 8 8
1000 18 17 13 13

總結

  • iOS下,Canvas渲染表現非常棒,重度游戲我覺得都可以輕易勝任
  • android下,國產的主流瀏覽器表現比較糟糕,在穩定性、渲染效率方面與Chrome相距甚遠。但理論上,中輕度游戲應該問題不大,理論上能夠在30幀左右。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM