URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 96357
[ Назад ]

Исходное сообщение
"Google открыл код FlatBuffers, библиотеки для эффективной се..."

Отправлено opennews , 17-Июн-14 11:22 
Компания Google открыла (http://google-opensource.blogspot.ru/2014/06/flatbuffers-mem... под лицензией Apache 2 библиотеку FlatBuffers (https://github.com/google/flatbuffers), предоставляющую средства для сериализации данных (http://ru.wikipedia.org/wiki/%D0%A1%D0%B... отличающиеся высокой эффективностью работы с памятью.  FlatBuffers позволяет (http://google.github.io/flatbuffers/) напрямую обращаться к сериализированным данным, без их промежуточной распаковки и выделения дополнительных буферов. Код библиотеки написан на C++, но доступен и вариант для Java.


Бинарный формат сериализованных данных переносим между разными платформами и архитектурами и может быть использован как для записи в файлы, так и для передачи по сети. Дополнительно предоставляются средства преобразования в бинарный формат из JSON-представления. В качестве областей применения библиотеки называются игры и ограниченные в потреблении памяти приложения. Поддерживается работа на широком спектре платформ, включая Android, Windows, OS X и Linux.


URL: http://google-opensource.blogspot.ru/2014/06/flatbuffers-mem...
Новость: http://www.opennet.me/opennews/art.shtml?num=40017


Содержание

Сообщения в этом обсуждении
"Google открыл код FlatBuffers, библиотеки для эффективной се..."
Отправлено Dcow , 17-Июн-14 11:22 
А что в сравнении с тем же Protocol Buffers от гугла?

"Google открыл код FlatBuffers, библиотеки для эффективной се..."
Отправлено Аноним , 17-Июн-14 11:29 
Why not use Protocol Buffers, or .. ?

Protocol Buffers is indeed relatively similar to FlatBuffers, with the primary difference being that FlatBuffers does not need a parsing/ unpacking step to a secondary representation before you can access data, often coupled with per-object memory allocation. The code is an order of magnitude bigger, too. Protocol Buffers has neither optional text import/export nor schema language features like unions.


"Google открыл код FlatBuffers, библиотеки для эффективной се..."
Отправлено Аноним , 17-Июн-14 16:56 
Судя по всему, команда разработчиков FlatBuffers нашли в ProtocolBuffers фатальный недостаток: его написали не они :).

"Google открыл код FlatBuffers, библиотеки для эффективной се..."
Отправлено Dcow , 17-Июн-14 19:04 
Нуу, у нас проекте 70-80% времени это сериализация/десериализация....
Так что может оно и быстрее.
Надо глянуть какой код, сколько структуры занимают в сравнении, сколько время доступа к полям у класс....эх, где на все время то брать...

"Google открыл код FlatBuffers, библиотеки для эффективной се..."
Отправлено Аноним , 18-Июн-14 00:02 
> Нуу, у нас проекте 70-80% времени это сериализация/десериализация....

Сурово. А что за проект такой? В смысле, чего можно делать для того чтобы тратить 70% на сериализацию?


"Google открыл код FlatBuffers, библиотеки для эффективной се..."
Отправлено Dcow , 18-Июн-14 14:46 
Просто пишем хороший код)

"Google открыл код FlatBuffers, библиотеки для эффективной се..."
Отправлено dq0s4y71 , 17-Июн-14 20:23 
И то, и другое делал Гугль, вроде как...

"Google открыл код FlatBuffers, библиотеки для эффективной се..."
Отправлено rob pike , 17-Июн-14 20:36 
Россиянин россиянину - друг, товарищ и брат.

"Google открыл код FlatBuffers, библиотеки для эффективной се..."
Отправлено Аноним , 17-Июн-14 22:11 
дерьмовее протобуфа трудно что-то придумать, там оверхед на каждом шагу. Единственный его плюс - оно есть и как-то работает.

"Google открыл код FlatBuffers, библиотеки для эффективной се..."
Отправлено SprintSet , 18-Июн-14 01:05 
Пытались внедрить. Остались на JSON - у нас нет бинарей, а протобуф не удобен до жути. Пусть идет в гугль.

"Google открыл код FlatBuffers, библиотеки для эффективной се..."
Отправлено Аноним , 18-Июн-14 02:10 
> Пытались внедрить. Остались на JSON - у нас нет бинарей, а протобуф
> не удобен до жути. Пусть идет в гугль.

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


"Google открыл код FlatBuffers, библиотеки для эффективной се..."
Отправлено Аноним , 18-Июн-14 02:51 
> Пытались внедрить. Остались на JSON - у нас нет бинарей, а протобуф
> не удобен до жути. Пусть идет в гугль.

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


"Google открыл код FlatBuffers, библиотеки для эффективной се..."
Отправлено жопка3 , 18-Июн-14 16:01 
А чем неудобен показался?

"Google открыл код FlatBuffers, библиотеки для эффективной се..."
Отправлено Аноним , 18-Июн-14 19:56 
Аналог http://msgpack.org/

"Google открыл код FlatBuffers, библиотеки для эффективной се..."
Отправлено жопка3 , 18-Июн-14 16:02 
> дерьмовее протобуфа трудно что-то придумать, там оверхед на каждом шагу. Единственный его
> плюс - оно есть и как-то работает.

А можно подробней об оверхеде по сравнению с JSON?


"Google открыл код FlatBuffers, библиотеки для эффективной се..."
Отправлено vitalif , 17-Июн-14 11:39 
Гугл там что, сериализацией только и занимается? :-)

"Google открыл код FlatBuffers, библиотеки для эффективной се..."
Отправлено Аноним , 17-Июн-14 21:42 
сделали одно гогно, потом обнаружили что действительно сделали гогно. Пошли делать другое.

"Google открыл код FlatBuffers, библиотеки для эффективной се..."
Отправлено SprintSet , 18-Июн-14 01:06 
Значит вы никогда не строили сервис-ориентированные системы под большой нагрузкой :))

"Google открыл код FlatBuffers, библиотеки для эффективной се..."
Отправлено Ordu , 17-Июн-14 11:57 
Гугл... Такой гугл:

> For applications on Google Play that integrate this tool, usage is tracked. ... you are free to
> remove the version string but we would appreciate if you would leave it in.

Всё ему отследить надо.


"Google открыл код FlatBuffers, библиотеки для эффективной се..."
Отправлено Аноним , 17-Июн-14 12:12 
Ну, а вы сомневались ? Гугл это практически АНБ, только АНБ денег не зарабатывает и работает по большей части на себя, но и немного на того дядю, но уже не из-за денег.

"Google открыл код FlatBuffers, библиотеки для эффективной се..."
Отправлено Аноним , 17-Июн-14 16:58 
> Всё ему отследить надо.

Это еще что. Вы делаете в программе HTTP даунлоад. Приходит сервак гугли, забирает файл. И отдает вашей программе. Если захочет. Интересная платформа этот ваш ведроид - зонд на зонде и зондом погоняет. В смысле, гугл хочет знать что вы там качали. Даже если это посторонняя программа.


"Google открыл код FlatBuffers, библиотеки для эффективной се..."
Отправлено Анон22 , 17-Июн-14 17:09 
Пруфлинк пожалуйста

"Google открыл код FlatBuffers, библиотеки для эффективной се..."
Отправлено Andrey Mitrofanov , 17-Июн-14 17:16 
> Пруфлинк пожалуйста

Он путает гугли то ли с сониевским, то ли с нокиевским "ускорителем мобильного интернета". Если я сам ничего не потаю, головка-то маленькая.


"Google открыл код FlatBuffers, библиотеки для эффективной се..."
Отправлено Igel , 17-Июн-14 18:41 
у гугля есть точно такой же мобильный "ускоритель".
включается он правда в определенные фазы луны...

"Google открыл код FlatBuffers, библиотеки для эффективной се..."
Отправлено Аноним , 18-Июн-14 00:13 
> Он путает гугли

Нет, не путает. К сожалению. Гугл таки обнаглел в зондостроении за пределами самых диких фантазий.


"Google открыл код FlatBuffers, библиотеки для эффективной се..."
Отправлено Andrey Mitrofanov , 18-Июн-14 10:20 
> Нет, не путает. К сожалению. Гугл таки обнаглел в зондостроении за пределами
> самых диких фантазий.

Вы уже третий, кто не ответил на #10. Я подожду. ТОлько не про "ззонды вообще, а про ускорители интернетов от, да-а? Не стесняйтесь, оба трое.


"Google открыл код FlatBuffers, библиотеки для эффективной се..."
Отправлено Аноним , 18-Июн-14 00:09 
> Пруфлинк пожалуйста

Не получится: совершенно случайно обнаружено анализом логов. И логи я вам разумеется не дам.

Могу сказать как сие выглядит: к user agent программы дописывается нечто типа "AppEngine-Google; (+http://code.google.com/appengine; appid: <идентификатор программы>)". Называется эта заподлянка как несложно догадаться AppEngine и используется чуть более чем половиной ведроидных программ при скачке файлов по HTTP. И гугл при этом *знает* что вы качали. Ибо приходит забирать файл именно гуглевый сервант, а вовсе и не ваша программа.

Так что гугля имеет юзеров андроида в хвост и в гриву и делает это довольно фундаментально. Не знали? Вот, получите и распишитесь. Наверняка у них где-то есть описание как этот app engine работает.


"Google открыл код FlatBuffers, библиотеки для эффективной се..."
Отправлено rob pike , 17-Июн-14 14:04 
Kenton Varda задолбался мейнтейнить протобуфы, ушёл (из Гугла) и запилил свой Cap-n-Proto.
Wouter van Oortmerssen пришёл (в Гугл) и запилил свой Cap-n-Proto для быстрого обмена данных с игрушками потому что не нашёл в Cap-n-Proto опциональных полей, до юнионов не дочитал, а спросить - язык отсох, да и надо же как-то себя проявить на новом месте.
А юнионы в протобуфы тоже потом добавили, но в опенсорс еще не выложили.

"Google открыл код FlatBuffers, библиотеки для эффективной се..."
Отправлено rob pike , 17-Июн-14 21:11 
Преимущества перед Cap-n-Proto, с точки зрения автора FlatBuffers:
>We feel optionals have a lot of uses beyond just mere unions and forwards/backwards compatibility, however. Game objects can have a LOT of fields, many of which are often at their default value, and thus not stored on the wire. This gives significant compression. The zero-byte compression in Cap'n Proto is cool, but we prefer to not have to use additional buffers when reading. Optionals also give a lot of design freedom, i.e. you can add a field that you know is only needed for very few instances without fear of bloating your binaries, as an alternative to "subclassing", or indeed unions.

"Google открыл код FlatBuffers, библиотеки для эффективной се..."
Отправлено Аноним , 17-Июн-14 17:17 
Вот еще одна библиотека http://kentonv.github.io/capnproto/

"Google открыл код FlatBuffers, библиотеки для эффективной се..."
Отправлено Аноним , 17-Июн-14 23:55 
Код на джаве какой-то не очень... Мягко говоря. Наколеночное все.

"Google открыл код FlatBuffers, библиотеки для эффективной се..."
Отправлено Аноним , 22-Июн-14 09:11 
По сравнению с кодом на С++, это еще по божески) А вообще руки нужно отбивать за такой код.