Closed byronhe closed 1 year ago
近期可能不准备将其正式加入对比;
简单和hdiffz -c-zstd比较测试了一下,diff的参数: zstd --ultra -21 -f --patch-from={old} {new} -o {pat}
(另外 zstd 压缩时可以用 --long=
来控制压缩字典的大小,但在patch模式下好像根本不起作用。)
优点:在小文件,文本短匹配比较多的情况下,zstd很有竞争力,输出的补丁稍小。 缺点:对大文件或二进制(apk)补丁稍大;diff内存占用较大运行稍慢(可以降低压缩系数来改善,但这样输出的补丁就会变大)。
patch参数: zstd -d -f --patch-from={old} {pat} -o {new}
优点:执行速度很快,小文件zstd有时快些(大文件一般慢些); 缺点:patch 内存占用很大,大概是 O(oldSize*(1~2)+decompressDictSize)
, 所以对于稍大的文件,patch时需要添加--memory=
参数补充足够内存才能正确执行。
https://github.com/facebook/zstd/wiki/Zstandard-as-a-patching-engine