ApkDiffPatch icon indicating copy to clipboard operation
ApkDiffPatch copied to clipboard

优化oldRefList

Open sisong opened this issue 7 years ago • 4 comments

当前默认引用了oldZip中的所有文件,不利于patch阶段的执行性能;
优化:从中去除对newZip没有太多参考价值的文件;减少patch时的解压文件数;

sisong avatar Mar 13 '18 01:03 sisong

0.9.3已经优化了部分该问题,去掉了sameList中被引用到的序号;
任务算部分解决
后续需要继续优化: decompressList

sisong avatar Mar 15 '18 14:03 sisong

尝试了一下“计算相关性”,综合效果不太好;
另一个思路,当patch时,用到某文件时才解压,用完后立即释放;
结合“引用到的文件的最大区域”的概念; 测试了一下:内存节约效果有一些但没有突破性;

sisong avatar Mar 21 '18 06:03 sisong

apkdiff时限制为同时解压引用个数为1,补丁可能会变大一些;
方案1. 原始hdiff算法需要定制,match时支持按规则动态限制匹配区域;耦合有点重; 2. 设计新的格式,不再用整体diff,而是分单个文件分别diff,生成的补丁包会变大,需要升级patch客户端有一个兼容过渡问题。

sisong avatar Nov 20 '18 15:11 sisong

apkdiff时限制为同时解压引用个数为1,方案3,重构核心diff算法,开放更细粒度的API: 返回覆盖线和后续处理的API

sisong avatar Nov 27 '18 18:11 sisong

not continue

sisong avatar Oct 17 '22 08:10 sisong