To view parent comment, click here.
To read all comments associated with this story, please click here.
Interesting. What they are doing sounds very similar, but they require the user to supply the symbol tables manually. Google's approach doesn't require anyone to supply the symbol tables, it creates them itself directly from the machine code (at least it creates something _like_ a symbol table and uses it for the same purpose).
I don't know which approach is more effective, but if they are close then Google's approach would be far more convenient.
Also, from my understanding of the MS documentation: the Delta Compression API when used without the user supplied symbol table is probably roughly equivalent to bsdiff. It may be slightly more effective because it understands PE format, but that is just a guess.I don't see any other magic going on.






Member since:
2005-07-06
Here's the relevant info from MS' Binary Delta Compression reference:
To get the maximum benefit from this feature, symbol files from the LINK process can be supplied during delta creation. This will help the creation process recognize the nature of the changes between the files. Richer symbol info, such as private symbols, will help make smaller deltas. Figure 3 illustrates this process.
Figure 3. Delta compression using symbol files
None of the symbol data is passed in the delta, and the symbol files are not needed during the delta apply process.
See Optional Data for Delta Create for more information on how symbols can be provided.
http://msdn.microsoft.com/en-us/library/ms811406.aspx