Cocos Creator v1.7 JSB 2.0 支持讨论帖

背景

大家应该已经注意到了,我们在最近热议的Cocos Creator v1.7这个版本中更新了 JSB 2.0 的底层实现。得益于此,v1.7 在 iOS 平台的性能将得到大幅度优化,同时,安卓平台的稳定性也更好。具体的性能表现可以看看节前官微曾经发布的 colinsusie 大大的测试反馈帖: 《Cocos Creator v1.7剧透:性能提升大大超出期望!》

JSB2.0

专门开文是希望能给大家普及一下 JSB 2.0 的一些背景知识,同时鼓励发布原生版本的用户都去尝试一下 v1.7 内测版本,如果发现任何问题,文末或者社区都可以跟我们反馈。

首先,Cocos Creator 原生平台的基础架构和 Cocos2d-x 一脉相承,虽然使用了不同的仓库,但是框架上是没变化的:在 Cocos2d-x C++ 引擎的基础上,通过 JS Virtual Machine 来支持 JS 脚本的执行,同时通过 JSB 绑定技术暴露 C++ API 到 JS 层使得 JS 代码可以调用引擎 API。

在 v1.6 以及之前版本中,Cocos Creator 一直使用 Spidermonkey 作为内置的 JS VM,并且一直直接使用 Spidermonkey 的 API 来实现绑定层代码。这点在 v1.7 中发生了重大的改变,我们将内置的 JS VM 切换为 V8 以及 JavaScriptCore(JSC),根据发布平台自动切换,并且抽象统一了绑定层的 API,让不同的 JS VM 可以无缝切换。

(如果有人不清楚这三者的区别,Spidermonkey 是 Firefox 中的 JS VM,V8 是 Chrome 的,JSC 是 Safari 的)

Cocos Creator v1.7 JSB 2.0 架构图

如图中所示,v1.7 中,发布 Windows, Android 平台的时候我们将自动使用 V8 作为底层 JS 引擎,发布 iOS Mac OS X 的时候将使用 JSC。另外,图中的 Abstract Binding APIs 就是我们抽象的绑定层 API,所有的绑定代码都基于这套 API 来实现,与实际用哪种 JS 引擎没有关系。

优势

在这样的重构之后,我们获得了很多前所未有的优势:

  1. JSC 是苹果的亲儿子,内部支持 JIT,性能提升立竿见影

  2. JSC 是 iOS 提供的系统库,游戏包中将不再包含 JS VM,缩小包体

  3. V8 以及 JSC 的垃圾回收机制都比 Spidermonkey 更稳定高效

  4. 抽象出统一的绑定层 API 之后,不仅抹平了不同 JS 引擎的差异,而且升级 JS 引擎的时候不会再影响到用户代码,用户可以无负担享受 JS 引擎不停升级带来的性能优化(V8, JSC 等 JS 引擎的迭代更新非常快)

总的来说,这种架构将是未来很长一段时间內 Creator 原生引擎的根基,支持我们快速得迭代引擎功能,稳步提升引擎质量。

绑定层API文档

ac68b942dd237d665f92a3cda34f4311.jpeg

测试注意事项

我建议原生项目都尝试升级到 v1.7,当然,目前仍然是内测版本,如果测试过程中遇到任何问题,我们都会尽全力解决。

需要注意的是,如果你之前的项目有做过原生引擎定制,或者自己生成过绑定代码,需要仔细阅读上面的绑定层 API 文档,使用工具重新生成绑定,或者重写手动绑定代码。

遇到任何问题,请文末回复或者戳「阅读原文」进社区帖子留言,我和 dumganhar 都会尽力处理。

最后,愿意帮助我们测试的,麻烦移步社区内测版发布帖下载,感激不尽!

5ac161a3255546241b05914492548b1d.gif

戳原文,发表感受!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值