小程序
小游戏
企业微信
微信支付
扫描小程序码分享
旧架构:AppService + WebView
新架构:AppService + Skyline
难道渲染线程不是真线程
2 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
如果楼主有Android或者iOS的原生开发经验,那么旧框架可以理解为
渲染层就是在webview控件里,而AppService则运行在独立的JavascriptCore里,然后相互之间透过原生代码(JSBridge)来进行数据交互,数据传递到webview里后,再通过webview里面的JavascriptCore运算后,构成dom树再给网页引擎构建渲染画面。
而skyline,你可以理解为独立对webview内核改造,再也不需要AppService的数据交互通过JSBridge来交互,直接通过线程间signal或者共享内存来交互数据(猜测,真要追求高效的话应该也会这么做,根据这一点也能猜测到),而且独立的线程来处理JS代码的内容,独立的线程来处理渲染,独立的线程来处理像内容的显示,所以处理更加高效。所以的单线程环境是指单独的线程来处理你的业务代码。
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
Skyline环境被称为单线程环境,这是因为它使用了JavaScript的单线程执行模型。
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
如果楼主有Android或者iOS的原生开发经验,那么旧框架可以理解为
渲染层就是在webview控件里,而AppService则运行在独立的JavascriptCore里,然后相互之间透过原生代码(JSBridge)来进行数据交互,数据传递到webview里后,再通过webview里面的JavascriptCore运算后,构成dom树再给网页引擎构建渲染画面。
而skyline,你可以理解为独立对webview内核改造,再也不需要AppService的数据交互通过JSBridge来交互,直接通过线程间signal或者共享内存来交互数据(猜测,真要追求高效的话应该也会这么做,根据这一点也能猜测到),而且独立的线程来处理JS代码的内容,独立的线程来处理渲染,独立的线程来处理像内容的显示,所以处理更加高效。所以的单线程环境是指单独的线程来处理你的业务代码。
变的还有布局渲染和像素的生成,这两个也分在两个线程处理了。而且三个独立的线程,阻塞的情况少了,CPU的运行效率也更高了。渲染跟像素呈现之间可以各自在自己的CPU时间内处理,也就是不再等像素都拷贝进GPU再渲染下一帧,而是可以拷贝像素进GPU的其余空闲的CPU时间里顺便渲染下一帧,所以呈现也更加高效了。
Skyline环境被称为单线程环境,这是因为它使用了JavaScript的单线程执行模型。