The OpenNET Project / Index page

[ новости/++ | форум | wiki | теги ]

23.03.2011 11:40  Компания Google открыла код Snappy, библиотеки для сжатия данных

Компания Google открыла под лицензией Apache код библиотеки Snappy, в которую включен набор высокопроизводительных функций для сжатия и распаковки данных. Библиотека не поддерживает совместимость с существующими методами сжатия и не предназначена для обеспечения максимальной степени сжатия. Вместо этого все усилия разработчиков были направлены на создание экстремально быстрого способа сжатия и распаковки, при умеренном уровне сжатия.

Код Snappy можно считать стабильным, так как он давно и активно используется в первичных проектах Google, от BigTable и MapReduce до внутренних RPC-систем. По заявлению Google, формат кодирования Snappy зафиксирован и не будет меняться в будущих версиях библиотеки. Отдельно отмечается высокая стойкость декодировщика к нарушению целости обрабатываемого потока, который разработан специально с оглядкой на исключение крахов при обработке любых входных данных.

Скорость работы Snappy значительно опережает такие реализации, как LZO, LZF, FastLZ и QuickLZ, при отстающем, но сопоставимом уровне сжатия. На одноядерном CPU Core i7 64-разрядная сборка Snappy продемонстрировала способность сжимать потоки данных со скоростью 250 Мб/сек и разжимать со скоростью 500 Мб/сек. Примечательно, что добиться столь высокого уровня производительности удалось без использования ассемблерных вставок, что позволяет использовать Snappy для различных архитектур и платформ.

При сравнении с наиболее быстрым режимом сжатия библиотеки zlib, Snappy продемонстрировала десятикратный выигрыш в скорости при тестировании наборов данных различного характера (от текстов до бинарных объектов), но при этом размер сжатых данных получался на 20-100% больше. Для обычного текста уровень обеспечиваемого в Snappy сжатия составляет 1.5-1.7 раз, для HTML-файлов - 2-4 раза. Zlib в быстром режиме обеспечивает сжатие в текста в 2.6-2.8 раз, а HTML-файлов в 3-7 раз.

  1. Главная ссылка к новости (http://code.google.com/p/snapp...)
  2. OpenNews: Яндекс начал формирование коллекции своих открытых проектов
  3. OpenNews: Компания Google открыла исходные тексты библиотеки регулярных выражений RE2
Автор новости: armsargis
Тип: Программы
Ключевые слова: Snappy, compress, zlib
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение Линейный вид | Ajax | Показать все | RSS
 
  • 1.1, Timka, 12:59, 23/03/2011 [ответить] [смотреть все]
  • +4 +/
    где бы посмотреть на одноядерный CPU Core i7?
     
     
  • 2.3, Аноним, 13:17, 23/03/2011 [^] [ответить] [смотреть все] [показать ветку]
  • +/
    Отключить все ядра кроме одного в bios
     
     
  • 3.7, Timka, 13:51, 23/03/2011 [^] [ответить] [смотреть все]
  • +4 +/
    одноядерным он от этого не станет
     
  • 2.30, pavlinux, 15:31, 23/03/2011 [^] [ответить] [смотреть все] [показать ветку]
  • +2 +/
    grub:

    nosmp

     
  • 2.61, Brick, 21:53, 23/03/2011 [^] [ответить] [смотреть все] [показать ветку]
  • +1 +/
    On a single core of a Core i7 processor - думаю имелось в виду на одном ядре... весь текст скрыт [показать] [показать ветку]
     
  • 1.2, Аноним, 13:06, 23/03/2011 [ответить] [смотреть все]  
  • +/
    Опять не рыба не мясо zlib жмёт достаточно быстро, при этом лучше и стандартен ... весь текст скрыт [показать]
     
     
  • 2.5, Аноним, 13:24, 23/03/2011 [^] [ответить] [смотреть все] [показать ветку]  
  • +4 +/
    До 500MB sec zlib-у как до луны пешком ... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.9, Nxx, 14:06, 23/03/2011 [^] [ответить] [смотреть все]  
  • +1 +/
    В статье же написано 500 Мб/с.
     
     
  • 4.36, Аноним, 16:43, 23/03/2011 [^] [ответить] [смотреть все]  
  • +/
    Мб Mb В русском сокращения МБ и Мб традиционно обозначают мегабайт Мегабит... весь текст скрыт [показать]
     
     
  • 5.72, Аноним, 11:41, 24/03/2011 [^] [ответить] [смотреть все]  
  • +/
    Не знаю что за традиции и откуда вы их взяли, но всегда считал Мб Mb Конечно... весь текст скрыт [показать]
     
     
  • 6.94, Аааа, 10:28, 30/03/2011 [^] [ответить] [смотреть все]  
  • +/
    >Не знаю что за традиции и откуда вы их взяли

    они вокруг нас

     
  • 2.11, FractalizeR, 14:10, 23/03/2011 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Какие, например?
     
  • 2.19, 123456, 14:29, 23/03/2011 [^] [ответить] [смотреть все] [показать ветку]  
  • +4 +/
    не, zlib жмёт недостаточно быстро а вообще, слова достаточно недостаточно р... весь текст скрыт [показать] [показать ветку]
     
  • 2.23, User294, 14:37, 23/03/2011 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Такое хорошо чтобы нахаляву диски разогнать Если у вас диск записывает со ск... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.26, Аноним, 14:46, 23/03/2011 [^] [ответить] [смотреть все]  
  • +/
    И чеб такое в контроллер диска на железе не зафигачить ?
     
     
  • 4.32, pavlinux, 15:32, 23/03/2011 [^] [ответить] [смотреть все]  
  • +1 +/
    см RAID-контролер с ... весь текст скрыт [показать]
     
     
  • 5.59, Аноним, 21:42, 23/03/2011 [^] [ответить] [смотреть все]  
  • +/
    Ну, RAID это отдельно строить надо, а чеб спрашивается в штатный контроллер диск... весь текст скрыт [показать]
     
     
  • 6.62, filosofem, 22:37, 23/03/2011 [^] [ответить] [смотреть все]  
  • +/
    Гигабайты текстоподобных файлов на обычном диске редко хранят В штатном случае ... весь текст скрыт [показать]
     
     
  • 7.63, Аноним, 23:00, 23/03/2011 [^] [ответить] [смотреть все]  
  • +/
    В принципе да, но я б не сказал что эффект будет незаметен, всякие папки с докам... весь текст скрыт [показать]
     
  • 6.69, вася, 10:59, 24/03/2011 [^] [ответить] [смотреть все]  
  • +/
    Ну и какой объем у этого диска получится Он же будет зависеть от того, какие да... весь текст скрыт [показать]
     
     
  • 7.73, Аноним, 13:02, 24/03/2011 [^] [ответить] [смотреть все]  
  • +/
    Объем номинальный, точно так же как и при обычном архивировании, вы же не считае... весь текст скрыт [показать]
     
  • 4.37, User294, 16:53, 23/03/2011 [^] [ответить] [смотреть все]  
  • +/
    В принципе этому ничего не мешает особо Только проц - вот он, уже есть, потому ... весь текст скрыт [показать]
     
     
  • 5.60, Аноним, 21:52, 23/03/2011 [^] [ответить] [смотреть все]  
  • +/
    Понятно что будет дороже, но так ли критично, скажем имеете вы диск 150 МБ сек з... весь текст скрыт [показать]
     
     
  • 6.64, User294, 23:27, 23/03/2011 [^] [ответить] [смотреть все]  
  • +/
    Технологичнее, только процы дуром прут и массово клепаются, а потому дешевые, пр... весь текст скрыт [показать]
     
     
  • 7.65, Аноним, 23:43, 23/03/2011 [^] [ответить] [смотреть все]  
  • +/
    Не, ну понятно что у ЦП тоже варианты есть, как минимум для начала, что же касае... весь текст скрыт [показать]
     
     
  • 8.87, letsmac, 22:11, 24/03/2011 [^] [ответить] [смотреть все]  
  • +/
    12 лет жду дешевого рэйда - а его все нет 12 лет назад обычным был буфер 16 мет... весь текст скрыт [показать]
     
  • 3.55, ascrzy, 20:35, 23/03/2011 [^] [ответить] [смотреть все]  
  • +/
    Не получили Вы скорость записи на диск в 300Мб сек, потому что данные вы сжали,... весь текст скрыт [показать]
     
     
  • 4.58, Аноним, 21:30, 23/03/2011 [^] [ответить] [смотреть все]  
  • +2 +/
    А зачем его считать если сжатие идет быстрее записи и параллельно ей ?
     
  • 1.4, Аноним, 13:22, 23/03/2011 [ответить] [смотреть все]  
  • +/
    Ну хорошо, по сжатию в 2 раза хуже zlib, а по скорости при этом как Молчек Ес... весь текст скрыт [показать]
     
     
  • 2.6, Andrey Mitrofanov, 13:39, 23/03/2011 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Автор говорит, в 10 http blog sesse net blog tech 2011-03-22-19-24_snappy htm... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.14, Аноним, 14:21, 23/03/2011 [^] [ответить] [смотреть все]  
  • +/
    Ну тогда серьезно.
     
  • 1.8, xxx, 13:52, 23/03/2011 [ответить] [смотреть все]  
  • –18 +/
    Блин, жалко что C++, а то попробывал использовать бы у себя в проекте.
     
     
  • 2.10, mine, 14:09, 23/03/2011 [^] [ответить] [смотреть все] [показать ветку]  
  • –13 +/
    Да, совсем не понятно зачем оно C++
     
     
  • 3.12, Карбофос, 14:14, 23/03/2011 [^] [ответить] [смотреть все]  
  • +4 +/
    перепишите на яву (или что там у вас), потестируйте. потом узнаете, почему
     
     
  • 4.76, mine, 15:20, 24/03/2011 [^] [ответить] [смотреть все]  
  • +/
    У меня там чистый С Перепиши и протестируй Особенно совместимость посмотри -... весь текст скрыт [показать]
     
     
  • 5.82, funny_falcon, 18:31, 24/03/2011 [^] [ответить] [смотреть все]  
  • +/
    extern "C" {} не спасёт?
     
     
  • 6.83, funny_falcon, 18:33, 24/03/2011 [^] [ответить] [смотреть все]  
  • +/
    Прочитал дальше ветку. Извиняюсь.
     
     
  • 7.84, funny_falcon, 18:51, 24/03/2011 [^] [ответить] [смотреть все]  
  • +/
    Впрочем, там код не сложный Я бы взялся переписать, если бы мне нужно было запл... весь текст скрыт [показать]
     
     
  • 8.85, mine, 19:27, 24/03/2011 [^] [ответить] [смотреть все]  
  • –3 +/
    Проблема не в сложности переписывания Проблема в необходимости оптимизации пере... весь текст скрыт [показать]
     
  • 5.91, Карбофос, 10:42, 25/03/2011 [^] [ответить] [смотреть все]  
  • +/
    то есть код ты так и не смотрел давай, тролль дальше о неких совместимостях и т... весь текст скрыт [показать]
     
  • 2.15, Аноним, 14:23, 23/03/2011 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Ну так и используйте если хотите, или ваш проект не может пристегивать внешние м... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.22, Карбофос, 14:32, 23/03/2011 [^] [ответить] [смотреть все]  
  • +/
    так это ж читать надо знать, что такое нативная функция а вообще, мне страшн... весь текст скрыт [показать]
     
  • 3.28, IGX, 15:04, 23/03/2011 [^] [ответить] [смотреть все]  
  • +3 +/
    Лучше бы на Си.
     
     
  • 4.45, stom, 18:05, 23/03/2011 [^] [ответить] [смотреть все]  
  • +/
    чем лучше, поясните
     
     
  • 5.51, IGX, 19:34, 23/03/2011 [^] [ответить] [смотреть все]  
  • +1 +/
    Тем, что во встраиваемых решениях не попользуешь из-за отсутствия компилятора Си... весь текст скрыт [показать]
     
     
  • 6.52, stom, 19:45, 23/03/2011 [^] [ответить] [смотреть все]  
  • +/
    приведите, пожалуйста, пример встроенной системы, в которой вы имели бы желание ... весь текст скрыт [показать]
     
     
  • 7.67, IGX, 02:26, 24/03/2011 [^] [ответить] [смотреть все]  
  • +1 +/
    микроконтроллеры... весь текст скрыт [показать]
     
     
  • 8.88, letsmac, 22:13, 24/03/2011 [^] [ответить] [смотреть все]  
  • +1 +/
    Если в контроллер влезает код библиотеки такого размера - он по определению подд... весь текст скрыт [показать]
     
  • 4.71, Карбофос, 11:29, 24/03/2011 [^] [ответить] [смотреть все]  
  • +/
    дык и перепишите благо, исходники на плюсах именно этого проекта всего лишь 100... весь текст скрыт [показать]
     
     
  • 5.74, IGX, 14:19, 24/03/2011 [^] [ответить] [смотреть все]  
  • +/
    А время и желание есть Зачем переписывать snappy на Си, если есть гораздо более... весь текст скрыт [показать]
     
     
  • 6.75, Карбофос, 14:52, 24/03/2011 [^] [ответить] [смотреть все]  
  • +1 +/
    зачем тогда вообще поднимать сыр-бор из-за каких-то 100 килобайт исходников ест... весь текст скрыт [показать]
     
  • 3.44, xxx, 18:02, 23/03/2011 [^] [ответить] [смотреть все]  
  • +1 +/
    Нет не может Есть специфичная железяка и только сишный компилятор, а С сильно... весь текст скрыт [показать]
     
     
  • 4.53, Аноним, 20:09, 23/03/2011 [^] [ответить] [смотреть все]  
  • +/
    А сишный компилер полноценный ? что за железка если не секрет ?
     
  • 2.29, Аноним, 15:17, 23/03/2011 [^] [ответить] [смотреть все] [показать ветку]  
  • +1 +/
    Замечательно что на C , сейчас других актуальных языков и нет И что вам мешает... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.47, anonymous, 18:40, 23/03/2011 [^] [ответить] [смотреть все]  
  • +/
    ORLY то, что она на цпп придётся врапперы ваять ну её нафиг, такую библиотеку... весь текст скрыт [показать]
     
  • 2.42, xxx, 17:56, 23/03/2011 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    О, как заминусовали-то Нет, я не против С , просто тот проект над которым я ... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.50, Карбофос, 18:56, 23/03/2011 [^] [ответить] [смотреть все]  
  • +/
    ну неужто там нет простого API? o_O
     
     
  • 4.56, Ytch, 21:24, 23/03/2011 [^] [ответить] [смотреть все]  
  • –1 +/
    А какое там может быть API Есть набор Си-шных исходников Они компилируются В ... весь текст скрыт [показать]
     
     
  • 5.70, Карбофос, 11:08, 24/03/2011 [^] [ответить] [смотреть все]  
  • +/
    для особо тяжелых случаев исходники можно и конвертнуть и избавиться от ОО если... весь текст скрыт [показать]
     
  • 3.57, Ytch, 21:29, 23/03/2011 [^] [ответить] [смотреть все]  
  • +1 +/
    Я думаю, минусанули потому что думали, что подразумевается что-то типа java как ... весь текст скрыт [показать]
     
  • 2.80, vasya, 16:42, 24/03/2011 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    extern "C"
     
     
  • 3.86, Ytch, 20:49, 24/03/2011 [^] [ответить] [смотреть все]  
  • +/
    Мимо Это помогает в обратной ситуации прикрутить Си-шный код в C программу ... весь текст скрыт [показать]
     
     
  • 4.89, vasya, 08:11, 25/03/2011 [^] [ответить] [смотреть все]  
  • +/
    Как раз наоборот ... весь текст скрыт [показать]
     
     
  • 5.90, vasya, 08:13, 25/03/2011 [^] [ответить] [смотреть все]  
  • +/
    Точнее, в обе стороны работает ... весь текст скрыт [показать]
     
  • 5.93, anonymous, 11:48, 25/03/2011 [^] [ответить] [смотреть все]  
  • +1 +/
    а вот здесь мы видим случай так называемого ламеризма ... весь текст скрыт [показать]
     
  • 1.13, Григорий, 14:16, 23/03/2011 [ответить] [смотреть все]  
  • +/
    На чём умеют, на том и пишут.
     
  • 1.17, Аноним, 14:27, 23/03/2011 [ответить] [смотреть все]  
  • +2 +/
    Было бы не плохо использовать как метод сжатия файловых систем вместо zlib у bt... весь текст скрыт [показать]
     
     
  • 2.21, arcade, 14:32, 23/03/2011 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Тада Где-то выхватывал сравнительную таблицу для zlib и lzo, lzo рулил за счёт ... весь текст скрыт [показать] [показать ветку]
     
  • 2.25, User294, 14:39, 23/03/2011 [^] [ответить] [смотреть все] [показать ветку]  
  • +1 +/
    1 Там уже поюзали LZO Он довольно резвый Не чемпион, но весьма даже шпарит, о... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.34, Анон, 16:24, 23/03/2011 [^] [ответить] [смотреть все]  
  • +1 +/
    Чем Вас не устраивает С Проект был открыт и за это спасибо А если у некоторы... весь текст скрыт [показать]
     
     
  • 4.38, User294, 16:59, 23/03/2011 [^] [ответить] [смотреть все]  
  • +5 +/
    Тем что в ядрах и эмбеддовке он пролетает, разумеется При том что скорость там ... весь текст скрыт [показать]
     
     
  • 5.46, stom, 18:10, 23/03/2011 [^] [ответить] [смотреть все]  
  • –7 +/
    gt оверквотинг удален ты в код смотрел связь между языком программирования в... весь текст скрыт [показать]
     
     
  • 6.68, mine, 10:40, 24/03/2011 [^] [ответить] [смотреть все]  
  • –6 +/
    Плюсам не место в эмбеддед и ядре Хочешь фактов вот тебе пара С не умеет сер... весь текст скрыт [показать]
     
     
  • 7.81, anonymous, 17:42, 24/03/2011 [^] [ответить] [смотреть все]  
  • +1 +/
    ахаха аццкий отжиг хождение по классам для поиска функций вот такие люди ка... весь текст скрыт [показать]
     
  • 7.95, arcade, 14:04, 09/04/2011 [^] [ответить] [смотреть все]  
  • +1 +/
    Когда-то на заре интернета у меня появилась звуковуха со встроенным FM-ресивером... весь текст скрыт [показать]
     
     ....нить скрыта, показать (8)

  • 1.18, Аноним, 14:28, 23/03/2011 [ответить] [смотреть все]  
  • +/
    А вот интересно, если zlib или чтото аналогичное на аппаратном уровне в проце ре... весь текст скрыт [показать]
     
     
  • 2.33, pavlinux, 15:39, 23/03/2011 [^] [ответить] [смотреть все] [показать ветку]  
  • +1 +/
    http mxt sourceforge net ... весь текст скрыт [показать] [показать ветку]
     
  • 1.20, User294, 14:31, 23/03/2011 [ответить] [смотреть все]  
  • +1 +/
    А оно у них точно лучше чем quicklz? А то на http://quicklz.com/bench.html скорости указаны весьма некислые - и 300 и 500 мб/сек на core i7 есть. Ладно, при случае сравним. Хотя писать такой проект на си++ имхо долбоклюйство. А чего там си++ требует? У них там такие офигенные алгоритмы? Зато во всякие кернелы и половину эмбеддовки оно такое гарантированно не попадет. Я еще понимаю когда на си++ пишут реально мощный компрессор с рекордным сжатием, но либу ориентированную на скорость иожно было бы и на сях родить.
     
     
  • 2.24, Аноним, 14:38, 23/03/2011 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Да уж, если http quicklz com bench html реально, то значительного опережения н... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.27, Аноним, 14:57, 23/03/2011 [^] [ответить] [смотреть все]  
  • +/
    Пиар не пиар а quicklz как минимум не гугла, да и лицензии Apache vs GPL, не в к... весь текст скрыт [показать]
     
  • 2.35, Анон, 16:30, 23/03/2011 [^] [ответить] [смотреть все] [показать ветку]  
  • +3 +/
    Что ты все время недоволен Множество хороших проектов написано вообще на всяких... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.39, User294, 17:13, 23/03/2011 [^] [ответить] [смотреть все]  
  • –1 +/
    Понятия о прекрасном у всех разные Я не виноват что там быстрые и эффективные а... весь текст скрыт [показать]
     
  • 3.49, anonymous, 18:45, 23/03/2011 [^] [ответить] [смотреть все]  
  • +/
    например нет, эклипс 8212 это не 171 хороший проект 187 бинс тоже ... весь текст скрыт [показать]
     
  • 2.40, Crazy Alex, 17:51, 23/03/2011 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Гугл не пишет на C. Вообще. А писано оно "под себя". Теперь вот открыли просто.
     
  • 1.31, JL2001, 15:31, 23/03/2011 [ответить] [смотреть все]  
  • +/
    \\оффтопик
    а когда в линуксе при установке новой/ещё одной библиотеки реализующей сжатие/разжатие бтрфс сразу сможет использовать этот алгоритм ? а ещё бекапер, karc и браузер...

    есть вобще такие оси ? и чтоб живые оси ?

     
     
  • 2.41, Crazy Alex, 17:52, 23/03/2011 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Нету Черт побери Мне вот тоже интересно, когда что-нибудь появится с нормальны... весь текст скрыт [показать] [показать ветку]
     
  • 2.43, Andrey Mitrofanov, 18:01, 23/03/2011 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Да Почему установленный Info-ZIP после установки unrar из non-free сразу не... весь текст скрыт [показать] [показать ветку]
     
  • 1.66, gildor, 00:15, 24/03/2011 [ответить] [смотреть все]  
  • +2 +/
    В readme к библиотеке сказано, что код оптимизирован для 64-битных систем с x86 архитектурой. Для других систем он вряд ли даст выигрыш в сравнении с тем же LZO. Судя по описанию, он использует чтение 64-битных величин по произвольному адресу - на ARM такое уже не прокатит (там игнорируются младшие биты адреса), компилятор может это и исправит - будет читать 8 байт и складывать в одну переменную (или в две - для 32-битов). Это уже значительное замедление. Если взять процессор по типу XBox-ового, там та же проблема, процессор даже генерит исключение при попытке читать слово по невыровненному адресу. В общем, похоже что этот код имеет плюсы только для одной платформы.
     
     
  • 2.96, annulen, 18:54, 22/11/2013 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    >Если взять процессор по типу XBox-ового, там та же проблема, процессор даже генерит исключение при попытке читать слово по невыровненному адресу

    Если речь идет о Xbox 360, то у PPC невыровненный доступ к памяти не только возможен, но и оптимизирован (в отличие от большинства RISC-архитектур, на которых эта операция запрещена или работает медленно)

     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:


      Закладки на сайте
      Проследить за страницей
    Created 1996-2017 by Maxim Chirkov  
    ДобавитьРекламаВебмастеруГИД  
    Hosting by Ihor