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


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
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.