Я узнал, что для сжатия файлов css и js на лету лучше всего оставить уровень по умолчанию -1
.
Сейчас я обслуживаю статические предварительно сжатые файлы gzip, и мне интересно, не лучше ли использовать более высокий уровень для их создания.
Уровень -9
хорошо, тогда? Или я должен использовать 4 или 5, как некоторые даже предлагают использовать для сжатия на лету?
Что ж, все сводится к вопросу, занимает ли распаковка сильно сжатого файла столько же времени, что и его сжатие.
Для сжатия в реальном времени «на лету» просто вопрос убывающей отдачи; в какой-то момент штраф ЦП за меньшую загрузку не принесет пользы вам и вашим пользователям в отношении более быстрой загрузки.
Т.е. когда требуется 20 секунд для сжатия загрузки на дополнительный 1%, что сократит время загрузки на 2 секунды, эффект будет даже пагубным.
Посчитайте свои собственные файлы, но этот стол похоже, указывает на то, что:
Для более высокого уровня сжатия штраф является в основном одноразовым и возникает только во время сжатия, поскольку распаковка файла gzip становится более эффективной и быстрой на самых высоких уровнях сжатия.
Для предварительно сжатых файлов поднимитесь как можно выше! Вы сэкономите на пропускной способности, времени загрузки и декомпрессии.
Уже сжатый файл невозможно снова эффективно сжать, даже если он был сжат с низким уровнем сжатия. Так сказал Шеннон.
меньшее сжатие не означает более низкую конечную энтропию, а скорее меньшую таблицу кодирования, что означает меньшее потребление ЦП и ОЗУ, а также больший размер результирующего файла.
Легко убедиться, что однажды сжатый файл больше не будет сжат. Предварительно сжатые файлы следует заархивировать ( tar
f.e.) или заархивировать / 7z-ed / rared с нулевым сжатием, если tar недоступен.