Category - Unity3d

2021-04-10 14:49:10    127    0    0

unity各类压缩方式性能探究,陈皓2020-12-24
版本:2019.2.6
打包对象:角色“白民“预制体

相关记录:
打包时间:包含依赖资源自动查找时间,(性能差异应关注秒级以下时间!)
读取时间包含:AssetBundleCreateRequest,AssetBundle,AssetBundleRequest 流程的时间
Unity读取机制:不压缩或者LZMA格式,在unity加载后内存中会处理成LZ4

压缩方式 大小 打包处理时间(s) 读取时间(x)
————————————————————————————
不压缩 1622k 13.3640811 0.5399647
13.5700311 0.5609903
13.5495395 0.6687141

unity-LZ4 948k 13.7928144 0.5434550
13.6893117 0.5586369
13.7192026 0.5431827

unity-LZMA 689k 14.7435645 0.8226537
14.0434290 0.7473594
14.9094666 0.8506351

外部压缩方式,7zip,zip待测

抛开Unity本身流程,打包时间减去10秒左右,读取减去0.4秒左右,分析,
得:
1,一般场景:
直接使用LZ4比较合适,不明显影响加载速度的情况下,容量还是可以减少40%。
2,网络下载场景:
使用LZMA文件更小,减少传输量,提升下载速度。影响加载速度。
3,思考,同时兼顾传输量小和加载速度的方案:
AB包不使用Unity内部压缩,或者仅使用LZ4。保证加载速度。
AB包打包后使用外部类库(7zip),进行进行高压。传至文件服务器。文件传输显著减少。
由更新器下载后在缓存中解压高压文件,释放出压缩率底的文件到StreamA

2/2