PPAPI插件与Node 插件对比
最近公司项目需要从cef向electron过度,相应的插件也需要做升级,其实ppapi插件在electron中也是可以工作的,只是某些场景效率会差一些。以下是个人看法,有错误之处请不吝指正。PPAPI插件使用固定接口作为一个module 加载到渲染进程,针对对应的标签对象实例化 instance ,通过 postmsg 、handlemsg方式与 js 交互,这种交互方式有很大局限性,需要两端对齐
最近公司项目需要从cef向electron过度,相应的插件也需要做升级,其实ppapi插件在electron中也是可以工作的,只是某些场景效率会差一些。
以下是个人看法,有错误之处请不吝指正。
PPAPI
插件使用固定接口作为一个module 加载到渲染进程,针对对应的标签对象实例化 instance ,通过 postmsg 、handlemsg方式与 js 交互,这种交互方式有很大局限性,需要两端对齐交互协议,
在渲染方面,ppapi 插件渲染实际上是在一块代表图像的内存上渲染,渲染完毕后通知浏览器,浏览器在合适的时候更新。这似乎还好,但是如果标签是视频显示作用,而且多路显示也就是多个标签效率会比较差。
node addon
node = libuv + v8 +sysapi
electeon = node + chromium + api
node 插件最大不同之处在于插件作为 node 外部扩展被加载,与v8同在一个内存环境。 这样带来的好处是 js 可以与之直接交互。而 electron 中的v8 是将 node和 chromium 两个中的v8融合,这样在 electron 中插件可以和 js 相互调用。
在渲染方面,由于可以直接与 js 交互,渲染可以使用原生的 webgl 这样针对多路视频场景开销会相对低,效率也会高。
更多推荐
所有评论(0)