2017-03-27 1 views
0

그래서 현재는 Protocol Buffers이 주로 키 - 값 데이터베이스에 복잡한 개체를 저장하는 방법으로 사용되는 프로젝트에서 작업하고 있습니다.프로토콜 버퍼 대 플랫 버퍼

Flat Buffers으로 마이그레이션하면 성능 측면에서 상당한 이점이 있습니까?

일반적으로 플랫 버퍼 대신 프로토콜 버퍼를 사용해야하는 이유가 있습니까?

답변

4

프로토콜 버퍼는 와이어의 공간 소비에 최적화되어 있으므로 보관 및 보관시 매우 효율적입니다. 그러나 복잡한 인코딩은 구문 분석하는 데 비용이 많이 소요되므로 계산 비용이 많이 들며 C++ API는 동적 할당을 많이 사용합니다. 한편, 플랫 버퍼는 효율적인 파싱 및 메모리 - 표현 (예를 들어, 데이터의 제로 - 카피 뷰를 제공하는 경우)에 최적화되어있다.

사용 사례에 따라 어떤 측면이 더 중요한지에 따라 다릅니다.

0

flatbuffer 페이지에서 인용 :

왜 프로토콜 버퍼, 또는를 사용 ..?

프로토콜 버퍼는 데이터에 액세스 할 수 있습니다 종종 개체 별 메모리와 결합, 구문 분석/보조 표현 풀고 단계를 필요로하지 않는 FlatBuffers을되는 주요 차이점으로, 참으로 FlatBuffers 상대적으로 유사하다 배당. 코드의 크기는 입니다. Protocol Buffers에는 선택 사항 인 텍스트 가져 오기/내보내기 또는 공용체와 같은 스키마 언어 기능이 없습니다.