jmacd / xdelta

open-source binary diff, delta/differential compression tools, VCDIFF/RFC 3284 delta compression
http://xdelta.org
1.1k stars 184 forks source link

Unusual Delta output file size (unusual compared to simlar program SmartVersion) #183

Closed GoogleCodeExporter closed 8 years ago

GoogleCodeExporter commented 9 years ago
Unusual Delta output file size. Using xdelta on the 'Visual Studio 2013' Retail 
editions .ISO images.

The .ISO files  can be downloaded from here:
Ultimate (2.9 GB): http://go.microsoft.com/fwlink/?LinkId=320679
Premium (2.9 GB): http://go.microsoft.com/fwlink/?LinkId=320676
Professional (2.9 GB): http://go.microsoft.com/fwlink/?LinkId=320673
Test Professional (175 MB): 
http://download.microsoft.com/download/4/0/6/406E397F-EDBE-4437-B64F-40DF7A92A26
E/VS2013_RTM_TESTPRO_ENU.iso

a) When creating a delta from Ultimate to Professional, the delta file size is 
1762 MB. I tried the same process with SmartVersion (www.smartversion.com) and 
it produces a delta file of size 607 KB (more realistic considering the 
differences within the .ISO file).

b) When creating a delta from Ultimate to Test_Professional, the delta file 
size is 160 MB. I tried the same process with SmartVersion 
(www.smartversion.com) and it produces a delta file of size 12 MB (more 
realistic considering the differences within the .ISO file). The 
Test_Professional is a subset of Ultimate (Test_Professional .ISO is only 175 
MB).

Can you explain ?. Surely xDelta should be producing something in the regions 
of what SmartVersion correctly produces ?, no ?. 

Original issue reported on code.google.com by xdeltare...@gmail.com on 29 May 2014 at 12:25

GoogleCodeExporter commented 9 years ago
This is interesting and I will investigate. Did you set the -B flag to its 
largest value (i.e., 2GB?)
I would like to update the xdelta3 source to optionally use 64-bit addressing 
internally, to support -B > 2GB which would help here.
There may be deeper issues related to the specific organization of an ISO. 
Xdelta would perform better, I suspect, if it recognized that ISOs are 
containers of smaller files-- it would encode per-file differences. 
SmartVersion may be doing this?

Original comment by josh.mac...@gmail.com on 15 Oct 2014 at 6:05

GoogleCodeExporter commented 9 years ago
I have a branch of xdelta3 w/ support for 64bit checksums, I put it on github:
https://github.com/jmacd/xdelta/tree/64bithash

This lets me set -B 4GB, which makes the whole source file visible, which 
yields better results. 
a) 618KB
b) 12MB

I'll release this in 3.0.9 after more testing. Thanks.

Original comment by xdeltadi...@gmail.com on 29 Oct 2014 at 6:48

GoogleCodeExporter commented 9 years ago

Original comment by josh.mac...@gmail.com on 29 Oct 2014 at 6:50

jmacd commented 8 years ago

This is a duplicate. See issue 203.