프로토콜 버퍼와 플랫 버퍼의 차이점은 무엇입니까?


109

둘 다 직렬화 라이브러리이며 Google 개발자가 개발했습니다. 그들 사이에 큰 차이가 있습니까? FlatBuffer 를 사용하기 위해 프로토콜 버퍼 를 사용 하여 코드를 변환하는 것이 많은 작업 입니까?

답변:


126

Protobufs 및 FlatBuffers를 포함한 몇 가지 직렬화 시스템에 대한 자세한 비교를 여기에 작성했습니다.

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

그러나 비교는 세 가지 새로운 "제로 카피"직렬화 시스템을 비교하는 데 더 중점을두고 있으며 대부분의 참조 포인트로 Protobufs를 포함합니다. 또한 저는 Cap'n Proto의 저자이자 Protobufs v2 (Google의 오픈 소싱 Protobufs를 담당했습니다)의 저자이기도하므로 비교가 편향 될 수 있습니다.

Protobufs는 Google의 자체 서비스 전체에서 사용되는 반면 FlatBuffers는 내부적으로 널리 채택되지 않은 실험적인 프로젝트에 가깝습니다.


안녕하세요, Mr. Varda, 의견을 보내 주셔서 대단히 감사합니다! 매우 유용한 오픈 소스 도구에 감사드립니다! 일반 사용자로서 저는 Protocol Buffers프로젝트 에서 위대한 것을 사용합니다 . 대한 뉴스 확인한 후 FlatBuffers와의 프로젝트를 Github나는 또한 간의 성능 비교를 검색 할 수 있도록, 나는 당신이 말한대로 실험과 매우 뜨거운 아니다 발견 PB하고 FB이 질문을 기록했다. 비교해 주셔서 감사합니다! 그것은 많은 것을 의미합니다! 그리고 benchmark귀하의 게시물 섹션에 더 이상 동의 할 수 없습니다 the relative performance of these libraries depends deeply on the use case.
마이닝

8
널리 채택되지는 않았지만 벤치 마크는 꽤 괜찮아 보입니다. 오픈 소스 게임 라이브러리 cocos2d-x는 현재 성공적으로 사용하고 있습니다. 나는 Flatbuffer가 실험 단계를 통과했다고 생각합니다
user18853

3
@KentonVarda, 2014 년 6 월 이후 FlatBuffers와 비교하기위한 새로운 업데이트가 있습니까?
TJR

@TJR : 나는 그것을 따라 가지 못했습니다. 아마 무리가 바뀌었을 것입니다. 누군가가 업데이트해야 할 사항을 알려 주면 업데이트를 통합하게되어 기쁩니다.
Kenton Varda

11
이 기사 에 따르면 Facebook은 Android 애플리케이션 내에서 Flatbuffers를 사용합니다 .
Alex Che
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.