resources.arsc压缩会影响性能吗?
c1024 opened this issue · comments
在知乎看到一篇文章(https://zhuanlan.zhihu.com/p/21543787) ,有一段话:
resources.arsc 在 APK 安装之后仍需要被频繁的读取,如果将它进行压缩,在每次读取前系统都必须进行解压的操作,从性能上考量这显然是得不偿失的。所以,赶紧摒弃通过压缩 resources.arsc 来给 APK 瘦身的方法吧。
请问resources.arsc压缩会影响性能吗?
先说我的观点:我觉得会有影响,但影响非常小。
具体的benchmark我没有做过,但我觉得resources.arsc的压缩最大的劣势是内存而不是运行时的速度。不压缩的resources.arsc系统可以使用mmap来节约内存的使用。一个app的资源至少被3个进程所持有(自己, launcher, system),所以mmap可以很大的节约内存使用。而压缩的resources.arsc会存在于每个进程中,可以使用dumpsys meminfo your.package.name
来查看压缩与不压缩内存的差异。
你也可以选择不压缩resources.arsc,这里只需简单把这个选项从配置项的compressFilePattern
列表中去掉即可。
PS:也欢迎大家做相关的benchmark
微信也是因为内存问题所以不压缩的吗?