參考文章:html
http://codetheory.in/optimizing-html5-canvas-to-improve-your-game-performance/html5
http://www.html5rocks.com/en/tutorials/canvas/performance/canvas
【總結】動畫
1)少用drawImage,能將多張圖拼成一張,儘可能多拼;code
2)drawImage的時候,用上所有參數,也就是用上sprite技術;orm
3)只作少許的,必要的碰撞檢測;htm
4)使用整型,少用浮點型;get
5)讓動畫基於時間,別基於幀,幀不可靠,基於時間能夠更平滑;it
6)文本繪製的成本很高;form
7)使用預渲染技術,將須要反覆繪製的東西預渲染到看不見的canvas上,再從它上面渲染至顯示用的canvas上,預渲染用的canvas大小不宜過大,否則它的開銷太大,得不償失。也就是說,預渲染用的canvas不宜使用sprite技術;
8)在路徑方面,合併多個路徑一次繪出來,不要屢次繪製零散的路徑;
9)改變context上下文的成本比較高,在相同的上下文下儘可能將相同的事情作完,再作另外一件事,不要頻繁切換上下文;
10)用多個canvas,分別繪製不一樣的圖層,不一樣圖層能夠有不一樣的fps;
11)避免使用陰影;