суббота, 10 июля 2010 г.

[soft] Попробовал упаковать 7-Zip-ом большой каталог

Пытаюсь перенести информацию со старого рабочего компьютера на новый с помощью внешнего винчестера (чтобы заодно и резервную копию всего получить). Попробовал сделать так: сначала запаковать то, что мне нужно, в архив с минимальным уровнем сжатия (архив пишется сразу на внешний диск), а потом распаковать его другой машине.

Решил воспользоваться 7-Zip-ом 4.65. Дошло дело до большущего рабочего каталога с несколькими десятками больших svn-новских рабочих копий. Общее количество файлов – порядка 2.8 миллионов, объем – около 36Gb.

И вот тут то обнаружилась засада. 7-Zip построил полный список файлов, отсортировал по именам и начал их архивировать в получившемся порядке. Т.е. не в порядке расположения каталогов и подкаталогов (скажем, сначала все из каталога aag_2, затем из aag_3, затем из ace, затем из docs, затем из emi_proto и т.д.), а по именам файлов. Сначала он стал сжимать все файлы с именами all-wcprops, затем entities, затем wc-properties, затем ChangeLog и т.д., вне зависимости от того, в каком каталоге эти файлы расположены.

Получилось, что за файлами all-wcprops архиватор сначала шел в каталог aag_2, затем в aag_3, затем в ace и т.д. Потом наступала очередь файла entities и архиватор опять шел в aag_2, aag_3, ace и далее по списку.

Как результат – очень низкая скорость работы. После одинадцати часов работы 7-Zip смог упаковать только 10Gb из 36 со средней скоростью упаковки 255Kb/s, предсказывая еще 29 часов для оставшихся файлов. Что не удивительно, поскольку вместо последовательного чтения содержимого каждого из подкаталогов (более-менее компактно размещающегося на диске), происходило постоянное перепрыгивание с одного места диска на другое. Пришлось 7-Zip прервать.

Сейчас запустил на аналогичном по структуре, но меньшем по объему, каталоге WinRar. Этот, вроде бы, читает файлы последовательно. И, как следствие, работает пошустрее.

Вот интересно, есть ли сейчас бесплатные архиваторы, позволяющие строить 7z или zip архивы, и которые читают содержимое каталогов строго последовательно? (Попробовал PeaZip, он очень прост – в режимах 7z и zip просто запускается консольная версия 7-Zip).

Отправить комментарий