emanzione / PATCH

The PATCH repository for issues tracking, wiki and shared material.
https://assetstore.unity.com/packages/tools/utilities/p-a-t-c-h-ultimate-patching-system-41417
MIT License
47 stars 7 forks source link

Times of processing bigger files resS (tested on 1.5Gb) depends on DeltaApplier buffer size #76

Open olehgavrilyuk opened 1 month ago

olehgavrilyuk commented 1 month ago

When processing update for a large file of resS, times of updating are big (more then 2 minutes). This is due to DeltaApplier creating blocks of memory of size 4mb, for streams application. If we reduce the memory size of the buffer to just 1kb, we get progressively better processing times (up to 10-15 seconds). Why initial memory sizer of 4Mb was selected? Were other values tested as well? Will it be ok to decrease it to 1kb as it gives a substantial boost to update of the big files.

MeishinTale commented 1 month ago

Concurred, did some testing varying DeltaApplier Buffer Size, here are the results ;

Times obtained from log traces for the update only (download not included) ; Original Build Size : 15.6 Go Patch Size : 51.7 mb 1kb 2min21 4kb 2min21 8kb 2min02 16kb 2min20 Original 4Mb 45min

Did some additional testing with a bigger patch to check patch size link to perf ; Original Build Size : 15.7 Go Patch Size : 1.4 Go 16kb 2min27 Original 4Mb 50min

Context : 9 Shared Assets files, resS sizes ranging from 2kb to 5.4 Go (3 are more than 2 Go) All updating processes ran successfully, updated builds were launchable and appeared to work normally Using Launcher Plus