1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/yu120-compress

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Компресс

Лицензия PRs Welcome GitHub Watch GitHub Star GitHub Fork

Оглавление [TOC]

Введение в открытый исходный код (микросервисная инфраструктура)

1 Введение

Основан на алгоритмах gzip, deflate, lz4, snappy и lzo для сжатия данных, в основном используется для сжатия данных RPC-коммуникаций!

2 Схемы сжатия

  • Bzip2: Bzip2 — это алгоритм и программа для сжатия данных, разработанные Джулианом Сьюардом и опубликованные под лицензией свободного программного обеспечения / открытого исходного кода. Сьюард впервые опубликовал bzip2 версии 0.15 в июле 1996 года, и в последующие годы этот инструмент сжатия стал более стабильным и популярным. В 2000 году Сьюард выпустил версию 1.0. Bzip2 обеспечивает более высокую степень сжатия по сравнению с традиционным gzip, но его скорость сжатия медленнее.

  • Deflater: DEFLATE — это алгоритм без потерь для сжатия данных, который использует комбинацию алгоритма LZ77 и кодирования Хаффмана. Исходный код DEFLATE можно найти в zlib, библиотеке общего сжатия, доступной на официальном сайте zlib.net. JDK предоставляет поддержку для библиотеки сжатия zlib, включая классы Deflater и Inflater для сжатия и распаковки соответственно. Оба класса предоставляют собственные методы.

  • Gzip: Алгоритм, лежащий в основе gzip, также является deflate. Однако gzip добавляет заголовки файлов и трейлеры к формату deflate. JDK также поддерживает gzip через классы GZIPOutputStream и GZIPInputStream, которые наследуются от DeflaterOutputStream и InflaterInputStream соответственно. В исходном коде можно найти методы writeHeader и writeTrailer.

  • Lz4: Lz4 — это алгоритм сжатия без потерь, который фокусируется на скорости сжатия и распаковки.

  • Lzo: LZO — это алгоритм сжатия данных без потерь, ориентированный на скорость распаковки. LZO является аббревиатурой от Lempel-Ziv-Oberhumer, и этот алгоритм не приводит к потере данных.

  • Snappy: Snappy (ранее известный как Zippy) — это библиотека быстрого сжатия и распаковки данных, разработанная Google на основе подхода LZ77. Библиотека написана на C++ и была выпущена с открытым исходным кодом в 2011 году. Её цель — не максимальная степень сжатия или совместимость с другими библиотеками сжатия, а высокая скорость и разумная степень сжатия.

3 Сравнение производительности

env:JDK:1.7/CPU:4C/Compress Times: 2000times

Формат Размер до (байт) Размер после (байт) Время сжатия (мс) Время распаковки (мс) Макс. загрузка ЦП (%)
bzip2 35984 8677 11591 2362 29,5
gzip 35984 8804 2179 389 26,5
deflate 35984 9704 680 344 20,5
lzo 35984 13069 581 230 22
lz4 35984 16355 327 147 12,6
snappy 35984 13602 424 88 11

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

На основе алгоритмов gzip, deflate, lz4, snappy, lzo реализовано сжатие данных, в основном для сжатия данных RPC-коммуникации! Развернуть Свернуть
MIT
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/yu120-compress.git
git@api.gitlife.ru:oschina-mirror/yu120-compress.git
oschina-mirror
yu120-compress
yu120-compress
master