xdelta - 差量更新算法


Apache
跨平台
C/C++

软件简介

Xdelta3是一种优秀的、被广泛使用的差量更新算法,它在操作上既有对新文件(targetfile)和旧文件(sourcefile)的差分(differencing)又有对产生的patch包进行压缩(compression),我们将产生patch包的过程统称为加密(encoding),而将合成新文件的过程统称为解密(decoding)。Xdelta3和经典的压缩算法LZ’77一样,也是将source
file划分成一个个不相交而又连续的window,然后进行encoding和decoding。

设target file的大小为n,source file的大小为m,window的大小为w。由于Xdelta3在合成target
file所消耗的时间为O(n),所消耗的内存大小为O(w),所以该压缩算法很适合被移植到手机中。

Xdelta3在产生patch包的时候,主要依靠三个方面:

  1. 采用Vcdiff格式编码,节省patch包字节;
  2. 从target file和source file的内容上做差分;
  3. 压缩patch包。