Я пишу механизм регистрации, который будет использоваться остальной частью кода для записи буквенно-цифровых данных в файл. Каждый другой модуль в системе будет отправлять буквенно-цифровые предложения (пару слов в макс.), Которые будут записываться в файл непрерывно. Уловка: мне было предоставлено небольшое количество предварительно выделенной памяти для использования в моих структурах данных и в хранении этих сообщений журнала. Если поток больше того, что можно записать на диск, сообщения журнала будут отброшены.модуль журнала с предварительно выделенной памятью
Я хочу установить механизм сжатия между клиентом и хранилищем в памяти в моем модуле журнала, чтобы я мог сохранять как можно больше сообщений.
Мой текущий дизайн до сих пор:
КЛИЕНТ ------> LOG МОДУЛЬ ---->компресс и хранить в памяти в буфер 1
Автор Тема: Когда его время для записи, переключите буфер 1 с буфером 2 и напишите буфер 1 в файл. Клиент будет писать в буфер 2 за это время.
Script вне: Decompress и показать сообщения журнала
Вопрос: Что такое хороший буквенно-цифровой алгоритм сжатия можно использовать или хорошая структура данных, я могу использовать, чтобы захватить как можно больше данных, насколько это возможно (во время стадии сжатия выше)?
Если возможно, мне нужен алгоритм, который не хранит код сжатия в промежуточной структуре данных - то есть, если система выходит из строя, я хочу иметь возможность распаковывать все, что было записано в файл до сих пор.
Попытка до сих пор: присваивать код каждому используемому charecter. Не кажется таким гибким.
Большинство из журнала сообщений представляют собой простые текстовые предложения