Информация об изменениях

Сообщение Re[2]: Сжать последовательность чисел от 05.02.2022 9:52

Изменено 05.02.2022 9:52 vsb

Re[2]: Сжать последовательность чисел
Здравствуйте, Quebecois, Вы писали:

Q>Я бы для начала записал бы разницы между значениями в файл в виде LEB128, после чего скормил бы это 7-Zipу на максимальном уровне сжатия (LZMA и PPMd отдельно). Это даст некую приблизительную оценку верхнего предела сжимаемости. Которую надо пересчитать в конкретные метрики. Если все сводится к тому, что у среднего юзера страница будет грузиться на 0.1 секунду быстрее, то нафиг такую оптимизацию.


В общем так получается:

Вариант один это просто писать значения в виде двухбайтовых чисел. Получилось 114552 байта.

Вариант два это писать в этом leb128. Получилось 89396 байта.

Вариант один через gzip: 37012. Вариант два через gzip: 32999. Т.е. для gzip это работает.

Теперь вариант один через winrar: 27478. Вариант два через winrar: 32510. То бишь винрар хорошо сжал данные без каких-то особых преобразований и плохо сжал данные с LEB128. 7-zip расположился между этими двумя вариантами, первый вариант сжал хуже винрара, второй лучше, но всё равно первый вариант лучше второго.

Исходный JSON 366130 байтов, сжатый gzip 73027, сжатый 7z 50013.

В общем пока выходит так, что в 2 раза едва получается выиграть.
Re[2]: Сжать последовательность чисел
Здравствуйте, Quebecois, Вы писали:

Q>Я бы для начала записал бы разницы между значениями в файл в виде LEB128, после чего скормил бы это 7-Zipу на максимальном уровне сжатия (LZMA и PPMd отдельно). Это даст некую приблизительную оценку верхнего предела сжимаемости. Которую надо пересчитать в конкретные метрики. Если все сводится к тому, что у среднего юзера страница будет грузиться на 0.1 секунду быстрее, то нафиг такую оптимизацию.


В общем так получается:

Вариант один это просто писать значения в виде двухбайтовых чисел. Получилось 114552 байта.

Вариант два это писать в этом leb128. Получилось 89396 байта.

Вариант один через gzip: 37012. Вариант два через gzip: 32999. Т.е. для gzip это работает.

Теперь вариант один через winrar: 27478. Вариант два через winrar: 32510. То бишь винрар хорошо сжал данные без каких-то особых преобразований и плохо сжал данные с LEB128. 7-zip расположился между этими двумя вариантами, первый вариант сжал хуже винрара, второй лучше, но всё равно первый вариант лучше второго.

Исходный JSON 366130 байтов, сжатый gzip 73027, сжатый 7z 50013.

В общем пока выходит так, что в 2 раза едва получается выиграть с gzip и ещё меньше с более продвинутыми алгоритмами.