The OpenNET Project / Index page

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

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

23.03.2011 11:40

Компания 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
Тип: Программы
Короткая ссылка: https://opennet.ru/30003-Snappy
Ключевые слова: Snappy, compress, zlib
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (89) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | 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 (ok), 15:31, 23/03/2011 [^] [^^] [^^^] [ответить]  
  • +2 +/
    grub:

    nosmp

     
  • 2.61, Brick (??), 21:53, 23/03/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > где бы посмотреть на одноядерный CPU Core i7?

    "On a single core of a Core i7 processor" - думаю имелось в виду: "на одном ядре Core i7"

     

  • 1.2, Аноним (-), 13:06, 23/03/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Опять не рыба не мясо. zlib жмёт достаточно быстро, при этом лучше и стандартен. А для более эффективного сжатия есть более другие алгоритмы.
     
     
  • 2.5, Аноним (-), 13:24, 23/03/2011 [^] [^^] [^^^] [ответить]  
  • +4 +/
    > Опять не рыба не мясо. zlib жмёт достаточно быстро, при этом лучше
    > и стандартен. А для более эффективного сжатия есть более другие алгоритмы.

    До 500MB/sec zlib-у как до луны пешком.

     
     
  • 3.9, Nxx (ok), 14:06, 23/03/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    В статье же написано 500 Мб/с.
     
     
  • 4.36, Аноним (-), 16:43, 23/03/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Мб != Mb
    В русском сокращения МБ и Мб традиционно обозначают мегабайт... Мегабит обозначается как Мбит. По крайней мере чаще всего.
    В оригинальной новости MB.
     
     
  • 5.72, Аноним (-), 11:41, 24/03/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Мб != Mb
    > В русском сокращения МБ и Мб традиционно обозначают мегабайт... Мегабит обозначается как
    > Мбит. По крайней мере чаще всего.
    > В оригинальной новости MB.

    Не знаю что за традиции и откуда вы их взяли, но всегда считал Мб == Mb. Конечно иногда байты обозначают букой б, а биты Б, но, на мой взгляд, так де лают те личности, которые не понимает разницы: бит-байт.

     
     
  • 6.94, Аааа (?), 10:28, 30/03/2011 [^] [^^] [^^^] [ответить]  
  • +/
    >Не знаю что за традиции и откуда вы их взяли

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

     
  • 2.11, FractalizeR (ok), 14:10, 23/03/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Какие, например?
     
  • 2.19, 123456 (??), 14:29, 23/03/2011 [^] [^^] [^^^] [ответить]  
  • +4 +/
    > Опять не рыба не мясо. zlib жмёт достаточно быстро, при этом лучше
    > и стандартен. А для более эффективного сжатия есть более другие алгоритмы.

    не, zlib жмёт недостаточно быстро.

    а вообще, слова "достаточно"/"недостаточно" рекомендуется употреблять в контексте "[не]достаточно для <назначение>", иначе фраза получается слишком мутной

     
  • 2.23, User294 (ok), 14:37, 23/03/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Опять не рыба не мясо. zlib жмёт достаточно быстро,

    Такое хорошо чтобы нахаляву диски разогнать :). Если у вас диск записывает со скоростью 150Мбайт/сек, а вы вдруг сжали данные в 2 раза и можете их жать аж со скоростью 500Мбайт/сек, то, очевидно, вы "относительно нахаляву" получили скорость записи на диск 300Мб/сек. Ну и чтение аналогично. В итоге хорошо жмущиеся данные (БД, тексты, етц) от такого сжатия еше и ускорятся, приколитесь? С zlib сие не светит, его двухстадийная схема достаточно тормознута, а за счет мелкого словаря и жмет не особо. В общем у zlib на данный момент пожалуй плюс только в распостраненности и есть. Потому что давно есть и те кто жмет намного лучше, и те кто жмет/расжимается намного быстрее. Намного - это зачастую в РАЗЫ.

     
     
  • 3.26, Аноним (-), 14:46, 23/03/2011 [^] [^^] [^^^] [ответить]  
  • +/
    И чеб такое в контроллер диска на железе не зафигачить ?
     
     
  • 4.32, pavlinux (ok), 15:32, 23/03/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > И чеб такое в контроллер диска на железе не зафигачить ?

    см. RAID-контролер'с


     
     
  • 5.59, Аноним (-), 21:42, 23/03/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Ну, RAID это отдельно строить надо, а чеб спрашивается в штатный контроллер диска не встроить, ну да, баксов на 20 допустим дороже получится, но так эффект зато какой, расходилось бы как горячие пирожки.


     
     
  • 6.62, filosofem (ok), 22:37, 23/03/2011 [^] [^^] [^^^] [ответить]  
  • +/
    >а чеб спрашивается в штатный контроллер диска не встроить

    Гигабайты текстоподобных файлов на обычном диске редко хранят. В штатном случае эффект будет незаметен, так как пишут-читают бинарные/сжатые данные в основном.

     
     
  • 7.63, Аноним (-), 23:00, 23/03/2011 [^] [^^] [^^^] [ответить]  
  • +/
    В принципе да, но я б не сказал что эффект будет незаметен, всякие папки с доками, xml'ники и пр. барахло тоже частенько переливать приходится. Или вот у меня например инсталляха AdobeCS5 7 гигов, а жатая 5, понятно что там степень сжатия меньше, но всеравно сотни метров можно сэкономить, а еще в архиве дампы базы, на 3 гига, они вообще жмутся хорошо, так что по моему есть варианты, и по скорости, пусть и не в разы, и по объему.
     
  • 6.69, вася (??), 10:59, 24/03/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Ну и какой объем у этого диска получится? Он же будет зависеть от того, какие данные на него пишешь. Не говоря уже о прелестях восстановлении после сбоев...
     
     
  • 7.73, Аноним (-), 13:02, 24/03/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Объем номинальный, точно так же как и при обычном архивировании, вы же не считаете что после этого у вас вырос объем диска. И какие проблемы с восстановлением ?
     
  • 4.37, User294 (ok), 16:53, 23/03/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > И чеб такое в контроллер диска на железе не зафигачить ?

    В принципе этому ничего не мешает особо. Только проц - вот он, уже есть, потому что без него - никуда. И не факт что на 100% загруженный. А контроллер, знаете ли, покупать еще надо. Что несколько портит карму данному решению. Вот такие решения - они возможность условно-НАХАЛЯВУ повысить скорость работы дисков в некоторых случаях :)

     
     
  • 5.60, Аноним (-), 21:52, 23/03/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Понятно что будет дороже, но так ли критично, скажем имеете вы диск 150 МБ/сек за 5000 р, и рядом 300 МБ/сек за 6, ну явно спрос будет ;) Технологичнее получается чем ЦП грузить.
     
     
  • 6.64, User294 (ok), 23:27, 23/03/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Технологичнее получается чем ЦП грузить.

    Технологичнее, только процы дуром прут и массово клепаются, а потому дешевые, производительные и не всегда загружены полностью. В итоге получается псевдо-бесплатное решение которое улучшает параметры того что есть, не требуя ничего покупать :).При таких условиях сложно будет клиентов убедить :)

    А райд до кучи как обычно будет жать в некий самопальный формат. Его описать ессно забудут, и с форматом соседа с полки магазина с такой же фичой но от иного производителя он ессно будет несовместим. Поэтому если вдруг райд гавкнется и такого же не найдется - вот тут вы пожалуй ощутите все прелести этого подхода. Ну в смысле, админы/юзеры этой железки ощутят. И они как бы себе не враги лишний раз мину замедленного действия то подкладывать :)))

     
     
  • 7.65, Аноним (-), 23:43, 23/03/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Не, ну понятно что у ЦП тоже варианты есть, как минимум для начала, что же касается дисковых контроллеров, именно их а RAID, то ведь тут тоже дело лишь в массовом внедрении, если клепать начнут то дорого не будет, тем более если это будет не дополнительный контроллер общего назначения на плате, а специализированный модуль внутри штатного контроллера, и единый формат при этом тоже не проблема. Внедрили же всякие NCQ и т.п, и это из той же оперы получается.
     
     
  • 8.87, letsmac (ok), 22:11, 24/03/2011 [^] [^^] [^^^] [ответить]  
  • +/
    12 лет жду дешевого рэйда - а его все нет 12 лет назад обычным был буфер 16 мет... текст свёрнут, показать
     
  • 3.55, ascrzy (?), 20:35, 23/03/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Не получили Вы скорость записи на диск в  300Мб/сек, потому что данные вы сжали, но время сжатия не посчитали. Если учтёте, получите ~187 Мб/сек, что не так уж и много.
     
     
  • 4.58, Аноним (-), 21:30, 23/03/2011 [^] [^^] [^^^] [ответить]  
  • +2 +/
    А зачем его считать если сжатие идет быстрее записи и параллельно ей ?
     

  • 1.4, Аноним (-), 13:22, 23/03/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Ну хорошо, по сжатию в 2 раза хуже zlib, а по скорости при этом как ? Молчек. Если лучше в те же 2 раза то смысла то нет.
     
     
  • 2.6, Andrey Mitrofanov (?), 13:39, 23/03/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Автор говорит, в 10. http://blog.sesse.net/blog/tech/2011-03-22-19-24_snappy.html
     
     
  • 3.14, Аноним (-), 14:21, 23/03/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Ну тогда серьезно.
     

  • 1.8, xxx (??), 13:52, 23/03/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • –18 +/
    Блин, жалко что C++, а то попробывал использовать бы у себя в проекте.
     
     
  • 2.10, mine (ok), 14:09, 23/03/2011 [^] [^^] [^^^] [ответить]  
  • –13 +/
    Да, совсем не понятно зачем оно C++
     
     
  • 3.12, Карбофос (ok), 14:14, 23/03/2011 [^] [^^] [^^^] [ответить]  
  • +4 +/
    перепишите на яву (или что там у вас), потестируйте. потом узнаете, почему
     
     
  • 4.76, mine (ok), 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 (ok), 19:27, 24/03/2011 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Проблема не в сложности переписывания Проблема в необходимости оптимизации пере... текст свёрнут, показать
     
  • 5.91, Карбофос (ok), 10:42, 25/03/2011 [^] [^^] [^^^] [ответить]  
  • +/
    то есть код ты так и не смотрел? давай, тролль дальше о неких совместимостях и тонкостях оптимизации при переходе с плюсов на си, о хождениях по классам для поиска функций и прочих твоих теоретических выкладках.
     
  • 2.15, Аноним (-), 14:23, 23/03/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Блин, жалко что C++, а то попробывал использовать бы у себя в
    > проекте.

    Ну так и используйте если хотите, или ваш проект не может пристегивать внешние модули ?

     
     
  • 3.22, Карбофос (ok), 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 [^] [^^] [^^^] [ответить]  
  • +/
    приведите, пожалуйста, пример встроенной системы, в которой вы имели бы желание использовать snappy, но вынуждены отказаться в основном ввиду описанных вами выше ограничений
     
     
  • 7.67, IGX (?), 02:26, 24/03/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > приведите, пожалуйста, пример встроенной системы, в которой вы имели бы желание использовать
    > snappy, но вынуждены отказаться в основном ввиду описанных вами выше ограничений

    микроконтроллеры

     
     
  • 8.88, letsmac (ok), 22:13, 24/03/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Если в контроллер влезает код библиотеки такого размера - он по определению подд... текст свёрнут, показать
     
  • 4.71, Карбофос (ok), 11:29, 24/03/2011 [^] [^^] [^^^] [ответить]  
  • +/
    дык и перепишите. благо, исходники на плюсах именно этого проекта всего лишь 100kB!
     
     
  • 5.74, IGX (?), 14:19, 24/03/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > дык и перепишите. благо, исходники на плюсах именно этого проекта всего лишь
    > 100kB!

    А время и желание есть? Зачем переписывать snappy на Си, если есть гораздо более компактные и проверенные временем аналоги типа LZO со сравнимой производительностью?

     
     
  • 6.75, Карбофос (ok), 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 [^] [^^] [^^^] [ответить]  
  • +/
    > Замечательно что на C++, сейчас других актуальных языков и нет.

    ORLY?

    > И что вам мешает использовать библиотеку в проекте?

    то, что она на цпп. придётся врапперы ваять. ну её нафиг, такую библиотеку, для zlib ничего писать не надо.

     
  • 2.42, xxx (??), 17:56, 23/03/2011 [^] [^^] [^^^] [ответить]  
  • +/
    О, как заминусовали-то =) Нет, я не против С++, просто тот проект над которым я работаю предполагает именно Си, и да, С++ вообще нет возможности использовать.
     
     
  • 3.50, Карбофос (ok), 18:56, 23/03/2011 [^] [^^] [^^^] [ответить]  
  • +/
    ну неужто там нет простого API? o_O
     
     
  • 4.56, Ytch (?), 21:24, 23/03/2011 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >ну неужто там нет простого API? o_O

    А какое там может быть API? Есть набор Си-шных исходников. Они компилируются. В итоге получается некий бинарный образ, который прошивается в железку. Где в этой цепочке может быть какой-то API, который поможет прикрутить код на С++ ?

     
     
  • 5.70, Карбофос (ok), 11:08, 24/03/2011 [^] [^^] [^^^] [ответить]  
  • +/
    для особо тяжелых случаев исходники можно и конвертнуть и избавиться от ОО. если вы заглядывали в исходники, то наверняка видели, сколько их там по объему.
    >который прошивается в железку

    прямо хардкор какой-то. например, линукс-базированные решения, которые тоже прошиваются в железку. и что? у них нет никакого API? не спора ради, просто думается, что товарисч работает всё-таки на обычном компе (ну или ембеддед), с количеством памяти, позволяющим делать malloc для объектов. или он программирует фотоаппараты, или еще что-то такое уж шибко экзотическое? вот в чем вопрос.

     
  • 3.57, Ytch (?), 21:29, 23/03/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > О, как заминусовали-то =) Нет, я не против С++, просто тот проект
    > над которым я работаю предполагает именно Си, и да, С++ вообще
    > нет возможности использовать.

    Я думаю, минусанули потому что думали, что подразумевается что-то типа java как "альтернатива". Обычно именно фанаты подобного любят вслух сожалеть о чем-то сделаном на С/C++.

     
  • 2.80, vasya (??), 16:42, 24/03/2011 [^] [^^] [^^^] [ответить]  
  • +/
    extern "C"
     
     
  • 3.86, Ytch (?), 20:49, 24/03/2011 [^] [^^] [^^^] [ответить]  
  • +/
    >extern "C"

    Мимо. Это помогает в обратной ситуации (прикрутить Си-шный код в C++ программу)

     
     
  • 4.89, vasya (??), 08:11, 25/03/2011 [^] [^^] [^^^] [ответить]  
  • +/
    >>extern "C"
    > Мимо. Это помогает в обратной ситуации (прикрутить Си-шный код в C++ программу)

    Как раз наоборот.


     
     
  • 5.90, vasya (??), 08:13, 25/03/2011 [^] [^^] [^^^] [ответить]  
  • +/
    >>>extern "C"
    >> Мимо. Это помогает в обратной ситуации (прикрутить Си-шный код в C++ программу)
    > Как раз наоборот.

    Точнее, в обе стороны работает.

     
  • 5.93, anonymous (??), 11:48, 25/03/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >>>extern "C"
    >> Мимо. Это помогает в обратной ситуации (прикрутить Си-шный код в C++ программу)
    > Как раз наоборот.

    а вот здесь мы видим случай так называемого ламеризма.

     

  • 1.13, Григорий (??), 14:16, 23/03/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    На чём умеют, на том и пишут.
     
  • 1.17, Аноним (-), 14:27, 23/03/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Было бы не плохо использовать как метод сжатия файловых систем (вместо zlib у btrfs) - я думаю скорость работы существенно возрастет. Хотя могу ошибаться.
     
     
  • 2.21, arcade (ok), 14:32, 23/03/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Тада. Где-то выхватывал сравнительную таблицу для zlib и lzo, lzo рулил за счёт быстрой распаковки и быстрого определения несжимаемых данных.

    Хачу в zfs.

     
  • 2.25, User294 (ok), 14:39, 23/03/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Было бы не плохо использовать как метод сжатия файловых систем (вместо zlib
    > у btrfs)

    1) Там уже поюзали LZO. Он довольно резвый. Не чемпион, но весьма даже шпарит, особенно по скорости декомпрессии.
    2) Бакланы из гугли зачем-то поюзали си++. Как вы себе представляете себе оный в ядре? В общем велосипедисты такие велосипедисты :)

     
     
  • 3.34, Анон (?), 16:24, 23/03/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Чем Вас не устраивает С++?
    Проект был открыт и за это спасибо. А если у некоторых бакланов не получается его пристроить в ядро, то это исключительно их проблемы.
     
     
  • 4.38, User294 (ok), 16:59, 23/03/2011 [^] [^^] [^^^] [ответить]  
  • +5 +/
    > Чем Вас не устраивает С++?

    Тем что в ядрах и эмбеддовке он пролетает, разумеется. При том что скорость там как раз обычно важна. Вот тем и не устраивает.

    > Проект был открыт и за это спасибо. А если у некоторых бакланов
    > не получается его пристроить в ядро, то это исключительно их проблемы.

    Ну так пристройте, если такой писец умный. В эмбеддовке извините поюзаные гуглем либы легко выжрут всю память под себя. Тогда как какойнить LZO умеет быть и весьма скромным в своих требованиях, например, минимальный декомпрессор - считанные сотни байтов кода, не требуют оперативы (кроме источника и назначения) и никаких либ вообще (в чисто-алгоритмической байде они в общем то понты и навороты). Такой подход сильно расширяет сферу применения, не в обиду велосипедистам гугеля.

     
     
  • 5.46, stom (?), 18:10, 23/03/2011 [^] [^^] [^^^] [ответить]  
  • –7 +/
    gt оверквотинг удален ты в код смотрел связь между языком программирования в... большой текст свёрнут, показать
     
     
  • 6.68, mine (ok), 10:40, 24/03/2011 [^] [^^] [^^^] [ответить]  
  • –6 +/

    Плюсам не место в эмбеддед и ядре. Хочешь фактов вот тебе пара. С++ не умеет сериализацию не то что классов, но даже структур. Это раз. Два - это то, что плюсы при правильном (объектном) использовании чрезвычайно много усилий тратят на хождение по классам для поиска функции, подлежащей вызову в данный момент.

    А теперь попробуй ты представить какие-нибудь факты, цифры и т.д. в полюзу плюсов. Или только яйцами звенеть можешь?

     
     
  • 7.81, anonymous (??), 17:42, 24/03/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    ахаха
    аццкий отжиг "хождение по классам для поиска функций" :)
    вот такие люди как ты, нихрена не понимающие как плюсы вообще работают, громче всех кричат какие они плохие
    погугли что ли что такое таблица виртуальных функций и как она используется
     
  • 7.95, arcade (ok), 14:04, 09/04/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Плюсам не место в эмбеддед и ядре. Хочешь фактов вот тебе пара.
    > С++ не умеет сериализацию не то что классов, но даже структур.
    > Это раз. Два - это то, что плюсы при правильном (объектном)
    > использовании чрезвычайно много усилий тратят на хождение по классам для поиска
    > функции, подлежащей вызову в данный момент.
    > А теперь попробуй ты представить какие-нибудь факты, цифры и т.д. в полюзу
    > плюсов. Или только яйцами звенеть можешь?

    Когда-то на заре интернета у меня появилась звуковуха со встроенным FM-ресивером. С ней шла программа на дискетке (на всю дискетку) с кучей интерфейса и минимумом фишек. В памяти жрала несколько метров и судя по всему была написана на сях. Спустя некоторое время я нашёл другую програму, которая могла управлять приёмником. Переборов уже глубоко въевшееся презрение к дельфам и написанному на них софту загрузил. Программа весила 54 килобайта и в памяти занимала где-то 200.

    Так я в первый раз понял, что виноваты не дельфы и не паскаль, а идиоты которые лезут писать программы или комментировать чужой код не имея представления ни о программировании ни о возможностях языка.

     

  • 1.18, Аноним (-), 14:28, 23/03/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А вот интересно, если zlib или чтото аналогичное на аппаратном уровне в проце реализовать, ну там типа SSE6, то оно ведь и быстрее и сильнее получится, чеб нет ?
     
     
  • 2.33, pavlinux (ok), 15:39, 23/03/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > А вот интересно, если zlib или чтото аналогичное на аппаратном уровне в
    > проце реализовать, ну там типа SSE6, то оно ведь и быстрее
    > и сильнее получится, чеб нет ?

    http://mxt.sourceforge.net/

     

  • 1.20, User294 (ok), 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 +/
    > А оно у них точно лучше чем quicklz? А то на http://quicklz.com/bench.html
    > скорости указаны весьма некислые - и 300 и 500 мб/сек на
    > core i7 есть. Ладно, при случае сравним. Хотя писать такой проект
    > на си++ имхо долбоклюйство. А чего там си++ требует? У них
    > там такие офигенные алгоритмы? Зато во всякие кернелы и половину эмбеддовки
    > оно такое гарантированно не попадет. Я еще понимаю когда на си++
    > пишут реально мощный компрессор с рекордным сжатием, но либу ориентированную на
    > скорость иожно было бы и на сях родить.

    Что ты все время недоволен? Множество хороших проектов написано вообще на всяких питонах и жабах. У тебя помещательство на кернелах и ембеддовке. Нужно на С - будь мужиком, возьми и перепиши, а не ной тут.

     
     
  • 3.39, User294 (ok), 17:13, 23/03/2011 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Что ты все время недоволен? Множество хороших проектов написано вообще на всяких
    > питонах и жабах.

    Понятия о прекрасном у всех разные.

    > У тебя помещательство на кернелах и ембеддовке.

    Я не виноват что там быстрые и эффективные алгоритмы в почете. Ы?

     
  • 3.49, anonymous (??), 18:45, 23/03/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Множество хороших проектов написано вообще на всяких питонах и жабах.

    например? нет, эклипс — это не «хороший проект». бинс тоже.

     
  • 2.40, Crazy Alex (??), 17:51, 23/03/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Гугл не пишет на C. Вообще. А писано оно "под себя". Теперь вот открыли просто.
     

  • 1.31, JL2001 (ok), 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 **сразу** не научился rar-архивам?! Сволочи же!!?

     

  • 1.66, gildor (?), 00:15, 24/03/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    В readme к библиотеке сказано, что код оптимизирован для 64-битных систем с x86 архитектурой. Для других систем он вряд ли даст выигрыш в сравнении с тем же LZO. Судя по описанию, он использует чтение 64-битных величин по произвольному адресу - на ARM такое уже не прокатит (там игнорируются младшие биты адреса), компилятор может это и исправит - будет читать 8 байт и складывать в одну переменную (или в две - для 32-битов). Это уже значительное замедление. Если взять процессор по типу XBox-ового, там та же проблема, процессор даже генерит исключение при попытке читать слово по невыровненному адресу. В общем, похоже что этот код имеет плюсы только для одной платформы.
     
     
  • 2.96, annulen (ok), 18:54, 22/11/2013 [^] [^^] [^^^] [ответить]  
  • +/
    >Если взять процессор по типу XBox-ового, там та же проблема, процессор даже генерит исключение при попытке читать слово по невыровненному адресу

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

     

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



    Спонсоры:
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2020 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру