HDiff1.0和BSDiff4.3的对比测试
作者: HouSisong@GMail.com 2013.06.06
tag: HDiffPatch,HDiff,diff,patch,bsdiff,补丁
测试环境: 系统windows7-x64 CPU:i7 QM 2.3G 内存: 6G DDR3 1600MHz 7zip使用LZMA2算法
(HDiffPatch的说明和源代码下载: http://blog.csdn.net/housisong/article/details/9003013 )
=================================================================================================== Program Uncompressed Compressed Compressed BSDiff-4.3 HDiff-1.0-x64 HDiff HDiff newVersion<--oldVersion (tar) (bzip2) (7z) -x64 +bzip2 Uncompressed +bzip2 +7z --------------------------------------------------------------------------------------------------- apache-maven-2.2.1-src <--2.0.11 5150720 1213258 1175464 115723 312852 105941 93996 httpd_2.4.4-netware-bin <--2.2.24 22612480 4035904 3459747 2192308 4154954 1961079 1765089 httpd-2.4.4-src <-- 2.2.24 31809536 4775534 4141266 2492534 4893630 2146854 1931397 Firefox-21.0-mac-en-US.app <--20.0 98740736 39731352 33027837 16454403 26000512 16017001 14637920 emacs-24.3 <-- 23.4 185528320 42044895 33707445 12892536 25236398 11139071 9790479 eclipse-java-juno-SR2-macosx -cocoa-x86_64 <--x86_32 178595840 156054144 151542885 1595465 1650702 1591549 1569777 gcc-src-4.8.0 <--4.7.0 552775680 86438193 64532384 11759496 26538554 9961692 8668268 --------------------------------------------------------------------------------------------------- Average Compression 100.00% 31.76% 28.47% 6.63% 12.21% 6.06% 5.46% =================================================================================================== ================================================ Program I/O+run time(s) run memory(MB) BSDiff HDiff BSDiff HDiff ------------------------------------------------ apache-maven... 2.1 0.5 42 29 httpd bin... 13.3 3.9 151 111 httpd src... 32.3 6.6 330 221 Firefox... 137 63 849 579 emacs... 203 47 1466 1026 eclipse... 253 108 1575 1051 gcc-src... 678 111 4639 3119 ------------------------------------------------ 394.62% 145.47% ================================================
HDiff比BSDiff生成的diff数据更小(一般小10%以上),速度更快(一般只需要1/4时间),占用内存更小(一般只需要2/3内存);