流加载与分包加载的区别
分包加载简单来说就是把一个大的程序包拆分成主包以及其他包,主包中的资源是启动时渲染出首页所需要加载的文件,主包下载时长越小,就可以尽早开始加载文件,首帧渲染总耗时也更短。
微信这样解释:随着小游戏的玩法越来越丰富,开发者对于扩大包大小的需求越来越强烈,所以我们推出了小游戏分包加载这一个功能。 所谓的分包加载,即把游戏内容按一定规则拆分这几包,在首次启动时先下载必要的包,这个必要的包我们称为「主包」,开发者可以在主包内触发其它分包的下载,从而把首次启动的下载耗时分散到游戏运行中。(摘自微信开发文档)
分包加载和流加载的相同点
- 两者都是为了加快无缓存首次冷启动的耗时。分包通过缩短下载时间,流加载通过提早加载时间。
分包加载和流加载的不同点
- 分包加载由开发者决定如何拆包,每个包存放哪些文件;流加载由我们编译工具打包,开发者无感知无需做任何操作
- 分包加载还可以解除单个程序包的大小限制。可以为开发者管理一些非启动必要的资源文件。但同时也会增加 SDK 内部管理的成本。即使不分包,开发者也可以自行在启动过程中下载非必要的资源。
注:流加载与分包加载是两种可以共存的实现方式。我们暂时以流加载为主优化小程序性能,后期不排除也会考虑分包加载的方式。