сжать большое количество маленьких файлов в разных папках - PullRequest
0 голосов
/ 23 июня 2011

В нашем приложении мы сохраняем некоторые изображения в разных папках, таких как:

1
2
3
4
...
500
...

И внутри каждой папки находится большое количество изображений, размер которых (5–20 КБ).

Теперь мы обнаружили, что когда мы пытаемся передать эти файлы, мы должны сначала сжать их, используя winrar, однако это слишком дорого обходится !! Также два часа, чтобы сжать одну родительскую папку.

На самом деле изображения в приложении - это изображения карты, например плитки карты Google:

http://mt1.google.com/vt/lyrs=m@156067651&hl=en&x=27&y=48&z=7&s=G || enter image description here

Так что мне интересно, есть ли хорошая идея сохранить / перенести эти небольшие, но большие файлы?

Ответы [ 3 ]

1 голос
/ 23 июня 2011

Подобные изображения, вероятно, уже будут сжаты, так что вы получите небольшой выигрыш в использовании полосы пропускания (и, следовательно, скорости передачи) от этапа сжатия.

Если процесс сжатия занимает много времени, когда ваш ЦПзаняты, попробуйте вместо этого просто создать простой tar-файл (который объединяет все файлы в один архив без применения сжатия).Я не знаю, что такое winrar, но большинство других инструментов сжатия (например, 7zip) могут генерировать tar-файл, поэтому я предполагаю, что winrar тоже может.

Если вы регулярно переносите весь набор файлов, но только небольшие числадобавляются / меняются каждый раз, вы можете посмотреть другие методы передачи, такие как rsync.Вы не описываете ни одну из ваших сред, поэтому я не могу сказать, будет ли это возможно для вас, но если это rsync отлично справляется только с передачей изменений (значительно ускоряя передачу), а также всегда используетодно соединение, чтобы вы не пострадали из-за задержки файла FTP и других протоколов - один файл следует за предыдущим по тому же соединению, как если бы передаваемые части были tar отредактированы вместе, так что вам это не нужнодополнительный шаг, чтобы упаковать файлы в одну и (и распаковать их в другую).

0 голосов
/ 23 июня 2011

Может быть, вы можете использовать библиотеку быстрого сжатия, такую ​​как Snappy .Тем не менее, он может сжать только один файл, и вы, конечно, не хотите передавать каждый файл отдельно.Для этого я бы создал несжатый архив TAR .

0 голосов
/ 23 июня 2011

Эти изображения уже сжаты. Однако, чтобы увеличить скорость передачи, вы можете попробовать использовать rar в режиме архива. Это делает то же самое, что и tar: объединяет все файлы в один большой файл. Не используйте сжатие в формате архива.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...