Эксперимент с использованием SQLite в качестве контейнера для архивирования файлов

Новости мира unix. Хотите узнать секрет вечного счастья? Откройте страницу 246.
Ответить
acolyte
Аватара пользователя
Сообщения: 2552
Зарегистрирован: 20.08.2022

#

Эксперимент с использованием SQLite в качестве контейнера для архивирования файлов
Дата публикации:Mon, 25 Mar 2024 12:39:52 +0300




Проект Pack предпринял попытку создания формата для архивирования файлов, построенного на базе библиотеки SQLite и алгоритма сжатия ZSTD (Zstandard). Подготовленный прототип, написанный на языке Pascal и распространяемый под лицензией Apache 2.0, обогнал по скорости создания архивов наиболее распространённые архиваторы, при том, что его работа сводилась к чтению данных, сжатию библиотекой libzstd и выполнению SQL-операций по добавлению сжатых данных в файл с БД SQLite.




При сжатии каталога с 81 тысячей файлов, общим размером 1.25 ГБ, pack оказался быстрее утилиты ZIP в 112 раз, выполнив операцию за 1.3 секунды против 146 секунд у ZIP. Размер архива при этом у pack получился на 23% меньше (194 MB у Pack и 253 MB у ZIP). Для сравнения утилита tar выполнила упаковку за 4.7 секунды без сжатия и за 28.5 секунд со сжатием методом gzip, ахиватор RAR справился с тестом за 27.5 секунд, а 7z за 54.2 секунды. Размер архивов составил: tar.gz - 214 MB, RAR - 235 MB, 7z - 135 MB. Отмечается, что по скорости распаковки и случайного доступа к файлам Pack также опережает другие архиваторы, потребляя при этом меньше оперативной памяти.

ZIP: 253 MB, 146 s
7z: 135 MB, 54.2 s быстрее ZIP в 2.7 раза
tar.gz: 214 MB, 28.5 s x 5.1
RAR: 235 MB, 27.5 s x 5.3
tar: 1345 MB, 4.7 s x 31
Pack: 194 MB, 1.3 s x 112




Про влияние файлового кэша на результаты проведения теста не упоминается. Вероятно, низкая скорость ZIP обусловлена порядком запуска тестов без оглядки на кэширование данных в памяти - тест с zip был запущен при холодном кэше, а остальные тесты при прогретом. В обычных условиях Zstandard демонстрирует в 3-5 раз более высокую скорость сжатия по сравнению с zlib и в два раза более быструю распаковку, при уровне сжатия выше на 10-15%.




Новость позаимствована с opennet.ru
Ссылка на оригинал: https://www.opennet.ru/opennews/art.shtml?num=60842

Жизнь за Нер'зула!

Ответить