В чем разница между буферами протокола и плоскими буферами?

109

Обе библиотеки сериализации разработаны разработчиками Google. Есть ли между ними большая разница? Много ли работы по преобразованию кода с использованием протокольных буферов для использования FlatBuffers ?

добыча полезных ископаемых
источник

Ответы:

126

Я написал подробное сравнение нескольких систем сериализации, включая Protobufs и FlatBuffers, здесь:

https://kentonv.github.io/capnproto/news/2014-06-17-capnproto-flatbuffers-sbe.html

Тем не менее, сравнение больше сосредоточено на сравнении трех новых систем сериализации с нулевым копированием и включает Protobufs в основном в качестве ориентира. Кроме того, я автор Cap'n Proto, а также автор Protobufs v2 (я отвечал за открытый исходный код Protobufs в Google), поэтому сравнение может быть необъективным.

Обратите внимание, что Protobufs используется во всех собственных сервисах Google, тогда как FlatBuffers - это скорее экспериментальный проект, который, насколько я понимаю, не получил широкого внутреннего применения.

Кентон Варда
источник
Привет, господин Варда, большое спасибо за комментарии! И спасибо за эти очень полезные инструменты с открытым исходным кодом! Как постоянный пользователь использую Protocol Buffersв своих проектах самое лучшее. После проверки новости FlatBuffersи проекта в Github, я нашел , что это является экспериментальным , как вы сказали , и не очень жарко, поэтому я искал сравнение производительности между PBи FBи отвечал на этот вопрос. Спасибо за сравнение! Это значит многое! И я не могу больше согласиться с benchmarkразделом в вашем посте the relative performance of these libraries depends deeply on the use case.
майнинг
8
Возможно, он не получил широкого распространения, но тест выглядит неплохо. Игровая библиотека с открытым исходным кодом cocos2d-x теперь успешно использует его. Думаю, Flatbuffer прошел экспериментальную фазу
user18853 03
3
@KentonVarda, есть ли новые обновления для сравнения с FlatBuffers с июня 2014 года?
TJR
@TJR: Я не успеваю за этим. Наверное, поменялась куча. Я буду рад включить любые обновления, если кто-то сообщит мне, что следует обновить.
Кентон Варда
11
Согласно этой статье, Flatbuffers используются Facebook в своем приложении для Android .
Alex Che