2014-11-11 2 views
0

У меня есть сервер приложений, у которого есть куча файлов, и мне может понадобиться динамически объединить подмножество из них во время выполнения и отправить их в один ответ HTTP в виде заархивированного файла. Давайте сделаем вид, что эти файлы A и B. Я могу либо предварительно хранить их как A.zip и B.zip, и объединить их в C.zip, у которых есть A и B внутри них, или просто сохранить их A и B и закрепить их в C.zip. Какой из них быстрее?Лучше ли комбинировать существующие zip-файлы и создавать новые?

ответ

1

Они - плохая идея. Создание C.zip с двумя файлами внутри, A.zip и B.zip, будет пытаться сжать в основном несжимаемые файлы и потребует трех шагов декомпрессии для извлечения вместо одного. (Вы можете избежать потери времени, пытаясь сжать с соответствующими параметрами, чтобы застегнуть молнию.) Извлечение A и B и застегивание нового C отбрасывает все усилия по сжатию, которые вступили в создание A и B, и повторяет все это при создании C.

Вместо этого вы хотите объединить два ZIP-файла, считая, что в нем нет встречного имени файла/путей. Вы можете использовать zipmerge для объединения двух zip-файлов.

Update:

Забавно, я только что вспомнил, что я написал один из них около года назад. Он называется zipknit.

+0

Если вы внимательно прочитали мой вопрос, я сказал, что C.zip содержит A и B, а не A.zip и B.zip. Итак, да, в основном то, что я прошу, это zipmerge быстрее, чем чистая zipping N файлов. – pathikrit

+0

Да, конечно, слияние происходит быстрее. Слияние не рекомпрессируется. –

+0

Ха-ха, только что узнал, что вы один из изобретателей gzip :) Почитаем, что мой тупой вопрос ответил вам :) – pathikrit

Смежные вопросы