提交 14fd8db0 编写于 作者: S skyler

code split support iOS new runtime

上级 0275edb4
......@@ -12,6 +12,15 @@ unity导出小游戏项目后,代码是在一个wasm文件里,经过brotli
使得小游戏可以先加载较小的首包进入主场景,再异步加载剩下的分包
## 作用
分包的作用在于优化启动时间
另外对于iOS新的高性能模式,分包还有两个作用:
1. 减少内存使用,以支持更多iOS低端机上运行高性能模式
2. 减少编译时间,降低了游戏前期的发烫情况
## 原理
目前我们采用了一种 Profile Guided Optimization 的方式,通过运行时收集信息,按函数粒度对小游戏的 wasm 代码包进行拆分
......@@ -30,13 +39,11 @@ unity导出小游戏项目后,代码是在一个wasm文件里,经过brotli
<image src="../image/wasmsplit/workflow.png">
如图所示,对于未分包项目,开发者可以在插件里启用分包,然后配置版本信息,这时候会插件会自动开始第一次分包,变成已分包项目(profile版本)
如图所示,对于未分包项目,开发者可以在插件里启用分包,然后配置版本信息,这时候会插件会自动开始第一次分包,变成已分包项目
对于已经分包的项目,开发者每次覆盖运行了一些场景,收集到有新增函数个数的时候,就可以生成下一个分包
分包分两种,profile版以及release版,其中的差别是release版不会在wasm里打入收集信息
需要特别注意,**发布的时候要注意使用release版**
需要特别注意,**发布的时候要注意使用发布版本**
### 打开分包
......@@ -56,17 +63,24 @@ unity导出小游戏项目后,代码是在一个wasm文件里,经过brotli
3. 第一次分包完成后,就可以开始迭代式收集,每一轮迭代流程如下:
第1步:android收集
第2步:iOS收集
第3步:可以选择再来一轮或者生成发布版本
1,2步里的收集过程:
- 点击开发者工具的预览,在真机上跑,有条件的话可以尽量覆盖各种机型(主流品牌)以及平台(Android/iOS)
- 当插件页显示的收集到增量函数个数相对稳定时,可以点击生成profile包
- 真机预览进行下一次收集
- 当插件页显示的收集到增量函数个数相对稳定时,可以点击“我已收集好,继续下一步”
<image src="../image/wasmsplit/code-split-index.png">
随着迭代轮数增多,新增函数会越来越少,这里没有完成收集的标准,建议开发者能回归覆盖游戏的各种启动场景即可(不同进度,二次启动等等),目的是为了延迟依赖剩下的分包的时间
**注意:分包过程中尽量不要对小游戏项目进行编辑,开发者工具上的console报错也可以忽略,等分包完成后回到上图界面再操作**
**注意:**
4. 当收集评估 ok 时,可以点击生成 release 版分包,生成最终的发布版本(如果生成了 release 包,下次收集前需要先生成 profile 包)
* 分包过程中尽量不要对小游戏项目进行编辑,开发者工具上的console报错也可以忽略,等分包完成后回到上图界面再操作
* 在第一次进入iOS分包之前,需要对代码包做预处理,这里预计需要等待10-30分钟
### 关闭分包
......
image/wasmsplit/code-split-index.png

160.4 KB | W: | H:

image/wasmsplit/code-split-index.png

173.1 KB | W: | H:

image/wasmsplit/code-split-index.png
image/wasmsplit/code-split-index.png
image/wasmsplit/code-split-index.png
image/wasmsplit/code-split-index.png
  • 2-up
  • Swipe
  • Onion skin
image/wasmsplit/workflow.png

28.7 KB | W: | H:

image/wasmsplit/workflow.png

32.6 KB | W: | H:

image/wasmsplit/workflow.png
image/wasmsplit/workflow.png
image/wasmsplit/workflow.png
image/wasmsplit/workflow.png
  • 2-up
  • Swipe
  • Onion skin
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册