On Sun, Jun 01, 2008 at 02:26:33AM +0400, Dmitry V. Levin wrote: > > > Я ожидал, что rsyncable deflate не может показать лучший коэффициент > > > сжатия, чем обычный deflate. Однако в приложенном файле довольно много > > > случаев, когда rsyncable deflate сильнее... > > > > Это связано с cpio hints -- дело в том, что мы пытаемся начинать новый > > deflate блок на границе файлов, когда начинается новый файл. > > А, тогда понятно, откуда это берётся. В других реализациях rsyncable > deflate не использовал этого "естественного" разбиения, и результат, > естественно, был хуже. То есть более частое разбиение на блоки может компенсироваться более маленьким Huffman tree и более оптимальным частотным кодированием внутри блока. Но для этого требуется дополнительная информация. Вместе с тем, если файл (внутри cpio) достаточно большой, то в пределах файла будет работать rsync_next алгоритм, так что он сможет отловить совпадающие куски внутри этого файла (rsync_next делает блок в среднем раз в 8K). То есть, в частности, для src.rpm сохраняется blind rsyncability. Кстати, я подумывал над тем, чтобы сделать tar hints, но ничего хорошего (и при этом достаточно простого) не придумалось.