参考文章: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)避免使用阴影;