开发微信小游戏,首次用Bundle做小游戏分包,发现首次加载bundle花的时间很长,都是10秒起步,即使这个Bundle是个空文件夹。
只有首次加载资源才会发生,第二次加载因为有缓存了,速度很快。通过微信开发者工具清理缓存运行,每次能必现。
我一直怀疑是引擎组的开发人员故意先setTimeout 10秒钟才开始正式加载。
看下面测试案例
引擎版本 creator2.4.5
测试资源有3个:
两个空文件夹bundle1,bundle2设置为小游戏分包bundle。
一个空场景test,场景不是bundle。
测试代码,同时加载bundle1,bundle2,和场景test,并计算加载花费时间
打微信包,用微信开发者工具测试结果
发现每个资源的加载时间都是10秒以上。两个空bundle的资源(只包含game.js 和 config.json)大小不够1k,而且是本地加载,加载时间给我10秒起步,这在逗我玩啊。
而且bundle加载慢就算了,还要影响到其它非bundle的资源加载,测试场景不是bundle资源,但是会等待其它bundle资源加载完成自己才开始加载,如果不加载其它bundle,直接加载场景只用0.2秒就加载完。想问一下,引擎的开发人员是不是没有本地缓存时,故意延迟10秒才开始加载bundle的?
还有
我本来想把除开始场景以外的场景全部打进小游戏分包的bundle里,以减小主包的大小。但是发现第一次运行游戏,加载每个bundle里的场景都最少加载10秒,即使是空场景,玩家都流失了,所以果断放弃这种方案,老实把所有场景放在主包里。