Это полностью зависит от сжимаемых данных.
Текст сжимается очень хорошо, двоичные форматы не очень хорошо, а сжатые данные (mp3, jpg, mpeg) - совсем нет.
Вот хорошая сравнительная таблица компрессии из Википедии.
Я видел несколько сильно сжатых файлов, таких как 700 МБ данных, сжатых до 30-50 МБ.
Но как вы получаете такие сжатые файлы? Я пытался использовать программное обеспечение, такое как WinRAR и 7Zip, но никогда не достиг такого высокого сжатия.
Какие методы / программное обеспечение позволяют вам так хорошо сжимать файлы?
(PS Я использую Windows XP)
Это полностью зависит от сжимаемых данных.
Текст сжимается очень хорошо, двоичные форматы не очень хорошо, а сжатые данные (mp3, jpg, mpeg) - совсем нет.
Вот хорошая сравнительная таблица компрессии из Википедии.
Если время, необходимое для сжатия данных, не является проблемой, вы можете оптимизировать сжатый размер, используя несколько различных инструментов вместе.
Сожмите данные несколько раз, используя различные инструменты, такие как 7zip, winrar (для zip) и bjwflate.
(Обратите внимание, что это не означает, что нужно сжать zip-файл снова и снова, а создать несколько альтернативных zip-файлов с использованием различных инструментов)
Затем запустите deflopt для каждого архива, чтобы немного уменьшить каждый архив.
Наконец, запустите zipmix для коллекции архивов. Поскольку разные zip-инструменты лучше работают с разными файлами, zipmix выбирает наилучшую сжатую версию каждого файла из каждого архива и выдает выходные данные, которые меньше, чем у любого из zip-инструментов, которые могли бы быть созданы индивидуально.
Тем не менее, вы должны заметить, что это не гарантирует, что ваши файлы будут работать магически. Некоторые типы данных просто не очень хорошо сжимаются, например, JPEG и MP3. Эти файлы уже сжаты внутри.
Предыдущие ответы ошибочны на порядок!
Лучший алгоритм сжатия, с которым у меня есть личный опыт, это paq8o10t (см. Страницу zpaq и PDF ).
Подсказка: команда для сжатия files_or_folders будет выглядеть так:
paq8o10t -5 archive files_or_folders
Источник: инкрементная утилита архивации журналов и архиватор
Вы можете найти зеркало исходного кода на GitHub .
Немного лучший алгоритм сжатия и победитель премии Хаттера - decomp8 (см. Ссылку на странице с призом). Тем не менее, нет программы компрессора, которую вы могли бы использовать.
Для действительно больших файлов lrzip может достичь коэффициентов сжатия, которые просто комичны .
Пример из README.benchmarks:
Давайте разберем шесть деревьев ядра на одну версию в виде tarball, от linux-2.6.31 до linux-2.6.36. Они покажут много избыточной информации, но с разницей в сотни мегабайт, что lrzip будет очень хорошо сжимать. Для простоты будет сравниваться только 7z, поскольку на данный момент это лучший компрессор общего назначения:
Это тесты, выполненные на двухъядерном Intel Core2 с частотой 2,53 ГГц и оперативной памятью 4 ГБ с использованием lrzip v0.5.1. Обратите внимание, что он работал с 32-битным пользовательским пространством, поэтому возможна только адресация 2 ГБ. Однако тест был выполнен с опцией -U, позволяющей обрабатывать весь файл как одно большое окно сжатия.
Тарбол из 6 последовательных ядерных деревьев.
Compression Size Percentage Compress Decompress None 2373713920 100 [n/a] [n/a] 7z 344088002 14.5 17m26s 1m22s lrzip 104874109 4.4 11m37s 56s lrzip -l 223130711 9.4 05m21s 1m01s lrzip -U 73356070 3.1 08m53s 43s lrzip -Ul 158851141 6.7 04m31s 35s lrzip -Uz 62614573 2.6 24m42s 25m30s
Squeezechart.com содержит сравнения различных степеней сжатия. Хотя, как говорится в ответе Nifle, вы вряд ли получите такие высокие коэффициенты сжатия для двоичных форматов.
Большинство инструментов сжатия имеют настройки, позволяющие вам достичь более высокой степени сжатия при компромиссе более медленного времени сжатия / распаковки и большего использования оперативной памяти.
Для 7-Zip найдите «Добавить в архив» во встроенной справке для более подробной информации.
Просто посмотрите Сводку тестов производительности для сжатия нескольких файлов, которая имеет лучший список сжатия, который состоит из полного теста сжатия.
Наилучшими показателями (на основе сжатия) в этом тесте являются PAQ8 и WinRK (PWCM). Они могут сжимать тестовый набор объемом более 300 МБ до 62 МБ (сокращение размера на 80%), но для завершения теста требуется не менее 8,5 часов. Программа номер один (PAQ8P) занимает почти 12 часов, а программа номер четыре (PAQAR) даже 17 часов, чтобы завершить тест. WinRK, программа со вторым лучшим сжатием (79,7%) занимает около 8,5 часов. Не удивительно, что все упомянутые программы используют PAQ (-подобный) движок для сжатия. Если у вас есть файлы со встроенными изображениями (например, файлы Word DOC), использующие PAQ8, он распознает их и раздельно сжимает, что значительно повышает степень сжатия. Все упомянутые программы (кроме WinRK) бесплатны.
Вы можете попробовать 7zip со следующими ультра настройками:
7z a -t7z -m0=lzma -mx=9 -mfb=64 -md=32m -ms=on big_file.mysql.7z big_file.mysql
Ваша лучшая ставка здесь, кажется, методом проб и ошибок. Попробуйте все доступные методы сжатия для каждого файла и выберите лучшее для размещения на вашем сайте. К счастью, компьютеры делают такие вещи довольно быстро и не скучают. Вы можете написать простой скрипт для автоматизации процесса, чтобы он был «относительно безболезненным».
Только не ожидайте чудес - 700 МБ до 30 МБ просто не случается так часто. Файлы журнала, как указано выше - да. «Ваш средний файл» - никак.
Nanozip, кажется, имеет наибольшее сжатие вместе с FreeArc. Но это еще не в окончательной версии. Вот как добивается хорошее сжатие Nanozip . У него очень высокая степень сжатия, и он не занимает слишком много времени, см. Сводку тестов производительности теста сжатия нескольких файлов, но FreeArc работает быстрее.