Мне часто приходится собирать файлы журналов и загружать их на центральный сервер (принадлежит другой компании). Центральный сервер имеет ограничение на размер файла, поэтому я пытаюсь создать наименьший возможный файл в формате zip.
Какие настройки лучше всего использовать при сжатии текстового файла в формат zip, когда мне нужен только маленький размер файла?
Я сделал очевидное и выбрал ультра-сжатие, и я заметил, что LZMA работает лучше, чем выкачивание, но у меня слишком много других вариантов, чтобы я мог протестировать их все.
compression
zip
7-zip
jjnguy
источник
источник
Deflate
формата, это уже не «нормальный» .zip-файл, а «расширенный» zip-файл, впервые разработанный WinZip. Изначально они сохраняли расширение как .zip, к большому ужасу (поскольку большинство обычных инструментов обработки zip не могут с ними справиться), но большинство архиваторов сейчас используют .zipx, чтобы отличать их от традиционных файлов .zip. Если вы можете использовать LZMA, переключитесь на .7z и выберите PPMd - он должен сжиматься лучше (и быстрее!) Для текстовых файлов.Ответы:
Чтобы создать наименьший стандартный ZIP-файл, который может создать 7-Zip, попробуйте:
Источник: Как я могу добиться лучшего, стандартного сжатия ZIP?
В противном случае, если вас не интересует стандарт ZIP, используйте следующие ультра-настройки:
Которые:
источник
Если вы можете использовать формат .7z, а не просто .zip, я бы просто использовал PPMD со следующими параметрами и оставил бы все остальное, как установлено уровнем сжатия:
Я регулярно сжимаю серверные / текстовые журналы (60 МБ +), используя эти опции, и они обычно выходят на 1-2% от исходного размера.
источник
Я сравниваю для db.fdb 1,2 ГБ (1236598784 B) на сервере Ubuntu 14.04.03 с p7zip [64] 9.20 на ВМ:
и получить такие результаты:
Я думаю, что второй метод работает нормально = (почти) лучший компресс с лучшим временем. Но для лучшего «просмотра» и легкости запоминания это первый метод - с небольшими файлами и без точки максимального сжатия. Между 2 и 3 методами мы не получаем 7z меньше, но тратим на сжатие почти вдвое больше времени. Каждый решит со своим.
источник
После долгих экспериментов, изучения подробной документации 7zip и прочтения части исходного кода 7z, касающегося расширенных параметров LZMA2, ниже представлен лучший способ. Он сократил некоторые тестовые файлы на 1 ГБ более чем в 2-4 раза по сравнению с ранее принятыми решениями, размещенными здесь или даже на странице 7z.
Здесь предполагается сжатие LZMA2, но вы можете добиться еще большей производительности в 7zip, передав расширенные параметры LZMA2, такие как
-m0=LZMA2:27
, или-m0=LZMA2:d25
, или массив параметров, таких какПохоже, что такие параметры не были соблюдены в 7z-версиях, которые я тестировал, но вы, возможно, захотите изучить их дальше или исправить код 7z, чтобы правильно их проанализировать. Или, возможно, он должен работать и просто не работает в тестируемых сборках.
источник
Установите в поле «split to volume, bytes» максимально допустимый размер файла сервера (я думаю, в байтах, хотя он принимает общие сокращения, такие как «КБ» и «МБ»). Если размер zip-файла превышает этот размер, 7-zip автоматически разделит его на несколько файлов, таких как integra_serviceLog.zip.001 , gration_serviceLog.zip.002 и т. Д. дискеты.) Для распаковки вам понадобятся все файлы. Используйте это вместо того, чтобы беспокоиться об абсолютных наилучших настройках сжатия, которые нужно использовать для любого конкретного набора файлов, потому что то, что лучше для одного файла, может отличаться для другого файла, и вам не нужно проходить это каждый раз, когда вам нужно копировать логи.
источник