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

OSCHINA-MIRROR/yu120-compress

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README.md 5.4 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 30.11.2024 20:36 4947df8

Компресс

Лицензия 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 )

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

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