Developer Toolbox

Brotli

Посмотрите, что Brotli умеет сверх gzip: встроенный словарь частых слов, окно побольше и уровни качества, которые меняют время на размер.

  • Окно: до 16 МБ
  • Словарь: 122 КБ
  • Качество: 0-11
  • Коды зависят от контекста
Что это значит?
  • Встроенный словарь: около 13 500 слов, которые знает каждый декодер Brotli, поэтому кодировщик может сослаться на слово по его номеру.
  • Качество: настройка усилий Brotli от 0 до 11. Высокие уровни ищут тщательнее ради ещё нескольких процентов и обходятся во много раз дороже.
  • Контекстное моделирование: выбор таблицы кодов по тому, что стоит прямо перед символом, ведь после буквы обычно идут другие символы, чем после цифры или пробела.
  • Окно: насколько далеко назад компрессор может искать повтор. В gzip это 32 КБ, в Brotli до 16 МБ.

Слова из словаря Brotli

Вставьте любой текст. Слова из словаря Brotli будут отмечены, а полосы сравнят первые 300 байт, где словарь важнее всего, со всем текстом.

Ввод

Загрузка...

Попробуйте: Загрузите короткую HTML-страницу. На нескольких сотнях байтов результат решает словарь, и Brotli заметно обгоняет gzip.

Качество, размер и время

Один и тот же текст на каждом уровне качества. До 4-6 размер быстро падает, а время почти не меняется; 10 и 11 дают ещё несколько процентов ценой многократно большей работы.

Загрузка...

Чем он отличается от gzip

Окно до 16 МБ

gzip копирует только из последних 32 КБ. Brotli заглядывает намного дальше, поэтому в большом файле находит повторы, которых gzip уже не видит.

Коды, зависящие от контекста

Один и тот же символ может получить разный код в зависимости от двух байтов перед ним. После буквы вероятны другие символы, чем после цифры или пробела.

Словарь с самого начала

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

Как это работает

Brotli опирается на те же две идеи, что и gzip (копии более раннего текста и коды Huffman), и добавляет ещё три. Его окно достигает 16 МБ вместо 32 КБ, поэтому в большом файле он находит повторы далеко позади. Его коды зависят от контекста предыдущих байтов. А ещё он поставляется со словарём примерно из 13 500 слов, частых на веб-страницах и в коде, так что даже первое появление слова вроде class или function может стать короткой ссылкой.

Когда стоит применять

Brotli делает текст на 15-25% меньше, чем gzip, особенно маленькие файлы, где основную работу выполняет словарь. Все современные браузеры принимают его по HTTPS. Статические файлы сжимайте заранее с качеством 11, а динамические ответы на лету с качеством 4-6: там он примерно так же быстр, как gzip.