Quelle est la différence entre les tampons de protocole et les tampons plats?

109

Les deux sont des bibliothèques de sérialisation et sont développés par les développeurs Google. Y a-t-il une grande différence entre eux? Est-ce beaucoup de travail de convertir du code à l'aide de Protocol Buffers pour utiliser FlatBuffers ?

exploitation minière
la source

Réponses:

126

J'ai écrit une comparaison détaillée de quelques systèmes de sérialisation, y compris Protobufs et FlatBuffers, ici:

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

Cependant, la comparaison se concentre davantage sur la comparaison des trois nouveaux systèmes de sérialisation «zéro copie» et inclut principalement Protobufs comme point de référence. De plus, je suis l'auteur de Cap'n Proto, et aussi l'auteur de Protobufs v2 (j'étais responsable de l'open sourcing Protobufs chez Google), donc la comparaison peut être biaisée.

Notez que Protobufs est utilisé dans tous les services de Google, alors que FlatBuffers est plus un projet expérimental qui, à mon avis, n'a pas été largement adopté en interne.

Kenton Varda
la source
Salut, M. Varda, merci beaucoup pour vos commentaires! Et merci pour ces outils open source très utiles! En tant qu'utilisateur régulier, j'utilise le grand Protocol Buffersdans les projets. Après avoir vérifié les actualités FlatBufferset le projet Github, j'ai trouvé qu'il était expérimental comme vous l'avez dit et qu'il n'était pas très chaud, alors j'ai également recherché la comparaison des performances entre PBet FBet posté cette question. Merci pour la comparaison! Cela signifie beaucoup! Et je ne peux pas être plus d'accord avec la benchmarksection de votre message the relative performance of these libraries depends deeply on the use case.
exploitation minière du
8
il n'est peut-être pas largement adopté, mais la référence semble plutôt bonne. La bibliothèque de jeux open source cocos2d-x l'utilise maintenant avec succès. Je pense que Flatbuffer a passé la phase expérimentale
user18853
3
@KentonVarda, des nouvelles mises à jour pour les comparaisons avec FlatBuffers depuis juin 2014?
TJR
@TJR: Je ne l'ai pas suivi. Probablement un groupe a changé. Je suis heureux d'incorporer toutes les mises à jour si quelqu'un m'informe de ce qui doit être mis à jour.
Kenton Varda
11
Les flatbuffers sont utilisés par Facebook dans leur application Android, selon cet article .
Alex Che