Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

xdelta3 encoding is too slow when generating a diff between two files which are more 10Gb of size #269

Open
nachammaichidambaram opened this issue Aug 9, 2023 · 5 comments

Comments

@nachammaichidambaram
Copy link

No description provided.

@nachammaichidambaram
Copy link
Author

xdelta3 encoding is too slow when generating a diff between two files which are more 10Gb of size. I tried all the options like increasing the bytes size using -B changing the compression level -1 and modifying -S djw . Using fastest machines with gpu support.

@mgrinzPlayer
Copy link

xdelta3 does not utilize GPU. It uses only one CPU thread. The most CPU time consuming are: secondary compression, then internal compression. If you are planning compressing diff files with external compressor like rar,7z,xz,etc better disable secondary compression with -S none.

On my old test machine, first line takes 60 seconds, second line 190 sec, pak file size around 10GB:

xdelta3.exe -v -e -0 -S none -I 0 -B 1073741824 -s file.pak file.pak.NEW fileTEST1.patch
xdelta3.exe -v -e -9 -S none -I 0 -B 1073741824 -s file.pak file.pak.NEW fileTEST2.patch

TEST1.patch size = ~90MB, compressed with 7z(mx9,dict512MB, 1thread) = 35MB
TEST2.patch size = ~38MB, compressed with 7z(mx9,dict512MB, 1thread) = 24.5MB

@nachammaichidambaram
Copy link
Author

nachammaichidambaram commented Aug 10, 2023 via email

@nachammaichidambaram
Copy link
Author

nachammaichidambaram commented Aug 10, 2023 via email

@mgrinzPlayer
Copy link

mgrinzPlayer commented Aug 11, 2023

I'm not jmacd.

The version which Iam using is 3.1.0

From where? Did you compile it? In this repo, since this commit e1a0a25, LZMA is not the default secondary compression.

anyway, decoding, first line should be good for most files, second line for bigger files (from "--help" "-B bytes source window size", also bigger buffers, sometimes it can speed up patching process)

xdelta3.exe -v -d -s file.pak fileTEST1.patch file.pak.NEW
xdelta3.exe -v -d -B 1073741824 -s file.pak fileTEST1.patch file.pak.NEW

edit:
Suggestion. Try getting older xdelta versions, I would try 3.0.7 and 3.0.8. Maybe those versions will be enough for your needs.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants