title: canvas在浏览器里的渲染原理？
desc: 为什么canvas在浏览器里表现和原生差得太远呢？<br>为什么cocos2d和egret等html5游戏引擎商家在浏览器里加上runtime就可以让html5游戏性能提升那么高呢？<br>为什么原生浏览器和PC浏览器不提供类似的功能呢？
topic: 前端开发
content: 泻药 问题1： 原生调用绘图API只跟自己系统的相关API打交道 浏览器的Canvas要保持跨平台兼容性 起码要适配（编译适配）到一个或几个通用图形（字体）封装库上 并不一定能直接跟当前系统的绘制（字体）API打交道 这就一层封装消耗了 再为了把这层封装暴露成JS API 又要包一层 而 JS 运行效率大部分情况赶不上native 导致第三层消耗 所以 相对的 canvas 要慢些 问题2： cocos2d和egret等并不是在浏览器上加runtime 而是直接使用对
answerer_tags: 北京碎催，胡同串子，说话痞，圣母婊请勿近