gift
gift copied to clipboard
优化oldRefList
当前默认引用了oldZip中的所有文件,不利于patch阶段的执行性能;
优化:从中去除对newZip没有太多参考价值的文件;减少patch时的解压文件数;
0.9.3已经优化了部分该问题,去掉了sameList中被引用到的序号;
任务算部分解决
后续需要继续优化: decompressList
尝试了一下“计算相关性”,综合效果不太好;
另一个思路,当patch时,用到某文件时才解压,用完后立即释放;
结合“引用到的文件的最大区域”的概念; 测试了一下:内存节约效果有一些但没有突破性;
apkdiff时限制为同时解压引用个数为1,补丁可能会变大一些;
方案1. 原始hdiff算法需要定制,match时支持按规则动态限制匹配区域;耦合有点重; 2. 设计新的格式,不再用整体diff,而是分单个文件分别diff,生成的补丁包会变大,需要升级patch客户端有一个兼容过渡问题。
apkdiff时限制为同时解压引用个数为1,方案3,重构核心diff算法,开放更细粒度的API: 返回覆盖线和后续处理的API
not continue