Мне было поручено распараллеливать GZip в Java 7, и я не уверен, какой из них возможный.
Назначение:
- Распараллелить gzip с использованием заданного количества потоков
- Каждый поток принимает блок размером 1024 КиБ, используя последние 32 блока КиБ из
предыдущего блока в качестве словаря.Есть возможность использовать без
словаря
- Читать из Stdin и stdout
Что я пробовал:
- Я пробовал использовать GZIPOutputStream, но, похоже, нет {{1 }} способ изолировать и распараллелить deflate (), а также я не могу получить доступ к deflater
для изменения словаря. Я попытался расширить GZIPOutputStream, но, похоже, он действовал не так, как я хотел, так как я все еще не мог изолировать сжатие / дефляция.
- Я попытался использовать Deflater с включенным переносом и FilterOutputStream для
вывода сжатых байтов, но мне не удалось заставить его правильно сжать
в формате GZip. Я сделал так, чтобы у каждого потока был компрессор, который будет записывать в массив байтов, а затем записывать в OutputStream.
Я не уверен, ошибаюсь ли я в своих подходах или принимал неверные подходы полностью. Может ли кто-нибудь указать мне правильное направление, в котором классы использовать в этом проекте?
задан am3692 22 October 2011 в 07:42
поделиться