Какие есть хорошие библиотеки Java для сжатия двоичных данных?

Я изучаю сжатие двоичных данных, а точнее сериализованных объектов Java. Думаю, мне нужна реализация одного из алгоритмов, перечисленных на этой странице Википедии. . Я нашел пару руководств и сообщений в блогах, но не нашел библиотек (и большая часть кода, который я нашел, казалась портированной с других языков... и я не доверяю эффективности и точности библиотеки Java, где имена методов начинаются с заглавных букв) . Таким образом, любые указатели того, какой алгоритм наиболее подходит для сжатия сериализованных объектов Java (а также произвольных двоичных данных), будут высоко оценены. И было бы удивительно, если бы кто-то знал об активном проекте, относящемся к этой теме (у Apache вроде ничего не было).


person Andrey    schedule 24.06.2010    source источник
comment
Вы пытаетесь добиться наилучшего сжатия или хорошего алгоритма сериализации?   -  person uthark    schedule 24.06.2010
comment
На самом деле JBoss предоставляет хорошую альтернативу стандартному механизму сериализации Java - JBoss Serialization. Взгляните на jboss.org/serialization.   -  person uthark    schedule 24.06.2010
comment
@utark: Вы должны опубликовать этот последний бит в качестве ответа. Я ищу хороший алгоритм сжатия, но, учитывая тот факт, что сериализация JBoss должна быть быстрее, я планирую изучить ее подробнее. Спасибо   -  person Andrey    schedule 24.06.2010


Ответы (2)


Вы можете взглянуть на [G]Zip(In|Out)putStream для полной схемы сжатия после сериализации. Это может дать вам хорошее сжатие без необходимости изменять какую-либо существующую логику сериализации. Вам нужно будет протестировать его, чтобы определить разницу, которую он будет иметь.

person Mark Peters    schedule 24.06.2010
comment
Я попробовал java.util.zip.Deflater и это не дало хорошего сжатия - person Andrey; 24.06.2010
comment
Я закончил тем, что использовал потоки GZip. Сжатие было намного лучше, чем для Zip - person Andrey; 01.02.2011

На самом деле JBoss предоставляет хорошую альтернативу стандартному механизму сериализации Java - JBoss Serialization. Взгляните на http://jboss.org/serialization.

person uthark    schedule 25.06.2010