Что-то между 250 и 500 байтами было бы достойным порогом в зависимости от уровня избыточности и с учетом того, что время, потраченное на сжатие данных, незначительно.
Я получил этоПонимая, что полностью избыточные данные (все байты одинаковы), вероятно, приведут к наибольшему уровню сжатия.
Повторный запуск тех же тестов с данными, считанными из /dev/zero
, я обнаружил, что длина сжатого файла былана самом деле не та переменная:
Uncompressed | Compressed | Percent Size
-------------+------------+-------------
100 bytes | 178 bytes | 178%
200 bytes | 178 bytes | 89%
300 bytes | 179 bytes | 60%
400 bytes | 180 bytes | 45%
500 bytes | 180 bytes | 36%
...
1000 bytes | 185 bytes | 19%
Это достойный аргумент в пользу того, что ответ технически 178 байт (я проверял этот случай и получил 178 байт).
ОднакоЯ думаю, что алфавитный тест, вероятно, немного ближе к практическому наилучшему случаю избыточности (не зная, как DEFLATE выглядит для избыточности).
Использование различных файлов в том же формате, что и в вопросе, я обнаружилследующее:
Uncompressed | Compressed | Percent Size
-------------+------------+-------------
100 bytes | 212 bytes | 212%
200 bytes | 212 bytes | 106%
300 bytes | 214 bytes | 71%
400 bytes | 214 bytes | 54%
500 bytes | 214 bytes | 43%
...
1000 bytes | 221 bytes | 22%
И неудивительно, что 212 представляется фиксированной точкой для этого типа файла.
Наконец, я решилo попробовать более прямой подход с текстом lorem ipsum и в итоге обнаружил, что фиксированная точка там была 414 байт.
Исходя из всего этого, я бы предположил, что что-то между 250 и 500 будет разумным нижним пределом для пропускасжатие для общего текста, который может иметь или не иметь некоторый уровень избыточности в среднем.Кто-то может даже захотеть подняться выше, если сравнительный анализ покажет, что время сжатия не стоит незначительной выгоды в космосе.