Was ist der Unterschied zwischen Protokollpuffern und Flatbuffern?

Antworten:

126

Ich habe hier einen detaillierten Vergleich einiger Serialisierungssysteme, einschließlich Protobufs und FlatBuffers, geschrieben:

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

Der Vergleich konzentriert sich jedoch mehr auf den Vergleich der drei neuen "Zero-Copy" -Serialisierungssysteme und umfasst Protobufs hauptsächlich als Referenzpunkt. Außerdem bin ich der Autor von Cap'n Proto und auch der Autor von Protobufs v2 (ich war bei Google für Open-Sourcing-Protobufs verantwortlich), sodass der Vergleich möglicherweise voreingenommen ist.

Beachten Sie, dass Protobufs in allen Google-eigenen Diensten verwendet wird, während FlatBuffers eher ein experimentelles Projekt ist, das meines Wissens intern nicht weit verbreitet ist.

Kenton Varda
quelle
Hallo Herr Varda, vielen Dank für Ihre Kommentare! Und danke für diese sehr hilfreichen Open-Source-Tools! Als regelmäßiger Benutzer benutze ich das Große Protocol Buffersin den Projekten. Nachdem ich die Nachrichten über FlatBuffersund das Projekt eingecheckt hatte Github, stellte ich fest, dass es, wie Sie sagten, experimentell und nicht sehr heiß ist. Daher habe ich auch den Leistungsvergleich zwischen PBund durchsucht FBund diese Frage gestellt. Danke für den Vergleich! Das bedeutet viel! Und ich kann dem benchmarkAbschnitt in Ihrem Beitrag nicht mehr zustimmen the relative performance of these libraries depends deeply on the use case.
Bergbau
8
Es ist vielleicht nicht weit verbreitet, aber der Benchmark sieht ziemlich gut aus. Die Open-Source-Gaming-Bibliothek cocos2d-x verwendet sie jetzt erfolgreich. Ich denke, Flatbuffer hat die experimentelle Phase bestanden
user18853
3
@KentonVarda, gibt es seit Juni 2014 neue Updates für Vergleiche mit FlatBuffers?
TJR
@TJR: Ich habe nicht mitgehalten. Wahrscheinlich hat sich ein Haufen verändert. Ich bin gerne bereit, Aktualisierungen aufzunehmen, wenn mich jemand darüber informiert, was aktualisiert werden soll.
Kenton Varda
11
Flatbuffer werden laut diesem Artikel von Facebook in ihrer Android-Anwendung verwendet .
Alex Che