Какой самый быстрый способ сжатия потоковых массивов символов в текстовом формате с использованием C? - PullRequest
2 голосов
/ 05 июля 2011

У меня очень мало опыта работы с алгоритмами сжатия;Мой опыт просто приходит от запуска команды tar czvf.Есть ли способ сжать массив символов в C?

Мой основной фокус - скорость и оптимизация памяти.Я получаю данные из последовательных портов, а затем записываю их в файл журнала прямо сейчас.Я хочу сжать / зашифровать данные перед тем, как записать их в файл журнала, потому что у меня ограниченное пространство на жестком диске.Я также храню информацию в формате ASCII, потому что я должен упаковать ее с отметкой времени.Какой метод я должен рассмотреть для сжатия этой информации?Или есть какая-нибудь библиотека, в которую я могу обратиться, чтобы помочь?

Ответы [ 2 ]

4 голосов
/ 05 июля 2011

zlib уже упоминался в комментариях.Поскольку вы упоминаете ASCII, вас могут заинтересовать, в частности, функции:

ZEXTERN int ZEXPORTVA gzprintf OF((gzFile file, const char *format, ...));
ZEXTERN int ZEXPORT gzputs OF((gzFile file, const char *s));
2 голосов
/ 05 июля 2011

У меня есть эта библиотека, отмеченная здесь, но я никогда не использовал ее.

LZO - это библиотека сжатия данных, которая подходит для сжатия / сжатия данных в режиме реального времени. Это означает, что он предпочитает скорость перед степенью сжатия.

LZO написано в ANSI C. Оба исходный код и сжатые данные формат предназначен для портативного через платформы.

http://www.oberhumer.com/opensource/lzo/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...