bsdiff был разработан для создания очень маленьких патчей для двоичных файлов.
Как указано на его странице, он требует max(17*n,9*n+m)+O(1)
байтов памяти и выполняется за O((n+m) log n)
время (где n
- это размер старого файла, а m
- это размер нового файла), это займет много времени и потребует огромного количества памяти для создания различий для файлов виртуальных дисков.
Исходная реализация находится на C, но порт C # описан здесь и доступен здесь .