Re[30]: О желании жить в Северной Америке
От: binnom  
Дата: 14.09.15 00:09
Оценка:
Здравствуйте, Aртёмка, Вы писали:

B>>3) можно ли создать свой класс стэка или обязательно использовать именно стэк трэда?

Aё>Зачем создавать свой класс? Лучше озаботиться оптимальным алгоритмом подсчёта скобок. Кстати, здесь в топике кроме раздувания щёк никто так и не предложил вменяемый алгоритм. Михаил предложил решение с выгрузкой на диск- не самое оптимальное, но решающее задачу.
Не самое оптимальное, но гораздо более правдоподобное и жизнеспособное, нежели непонятная конструкция с компрессией.

Aё>UPD:

Aё>1) Нарезать блоки фиксированного размера, например 8Mb.
Aё>2) Скажем у нас 4 вида скобок. На каждую открывающую скобку записываем 2 бита в текущий блок- смещение в байтах и битах легко вычислить по счётчику. В случае 3 битов чуть сложней формула, но смысл понятен.
Aё>3) При заполнении блока, он отдаётся в хранилище блоков. Хранилище блоков все кроме верхнего блока упаковывает deflate-м- так боремся с "паттернами" вроде "({([({([", не изобретаем велосипеды с RLE. Можно с отдельным потоком и блоком синхронизации
Aё>4) Хранилище блоков при суммарном размере сжатых блоков больше установленного размера, скажем 128m, сливает сжатые блоки порциями в зависимоси от требований к латентности, или разом в временный файл. При необходимости подгружает поблочно и распаковывает.
Это все прекрасно, но твой подход не решает задачу, совсем не решает. Ты просто нагородил конструкцию, которая запаковывает входящие данные.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.