`

Google Protocol Buffer举例1

 
阅读更多


    optional string email = 3; 

 

    enum PhoneType { 

        MOBILE = 0; 

        HOME = 1; 

        WORK = 2; 

    } 

 

    message PhoneNumber { 

       required string number = 1; 

       optional PhoneType type = 2 [default = HOME]; 

    } 

    repeated PhoneNumber phone = 4; 

}

下面是對上述數據結構進行調用/輸出/序列化 的C++程序示例:

Person person; 

person.set_name("John Doe"); 

person.set_id(1234); 

person.set_email("jdoe@example.com"); 

fstream output("myfile", ios::out | ios::binary); 

person.SerializeToOstream(&output);

輸入/以字符串導入的C++程序示例:

Person person; 

person.set_name("John Doe"); 

person.set_id(1234); 

person.set_email("jdoe@example.com"); 

fstream output("myfile", ios::out | ios::binary); 

person.SerializeToOstream(&output);

從上面的例子我們可以看到, Protocol Buffer實際上就是 C++裡面的一個結構型, 所以它的運行速度比起 XML文件會快上非常大的倍數.  因為XML 需要從文件中讀取出字符串,再轉譯成 XML 文檔對象結構模型, 然後再從XML 文檔對象結構模型中讀取出指定節點的字符串, 最後再將這個字符串轉換成指定類型的變量, 這樣繁複的處理, 將大大消耗 CPU 資源. 而Protocol Buffer只需要簡單地將一個二進制序列, 按照指定的格式讀取到 C++ 結構類型中去就行了.

分享到:
评论

相关推荐

    Google Protocol Buffer 详细入门

    Google Protocol Buffer 详细入门Google Protocol Buffer 详细入门

    google Protocol Buffer2.5.0.jar

    Protocol Buffer 2.5.0 jar包

    01 Protocol Buffer技术详解(语言规范).doc

    1. 语言中立:Protocol Buffer 可以在不同的语言和平台之间进行数据交换,例如 Java、C++、Python 等。 2. 平台中立:Protocol Buffer 可以在不同的平台之间进行数据交换,例如 Linux、Windows、Android 等。 3. 可...

    protocol buffer

    Protocol Buffer(简称protobuf)是Google开发的一种数据序列化协议,它是跨平台、语言无关的,用于结构化数据的高效序列化方法。protobuf提供了一种方式将数据结构定义为.proto文件,然后可以使用protobuf编译器...

    Protocol Buffer

    Protocol Buffer是Google开发的一种数据序列化协议,它提供了一种高效、跨平台的方式来存储和传输结构化数据。Protocol Buffer的主要功能是将复杂的数据结构转换为二进制流,以便在网络中高效地传输或者持久化存储。...

    protocolbuffer

    ProtocolBuffer,简称PB,是由Google开发的一种数据序列化协议,它是Google的一种二进制数据交换格式,用于结构化数据的序列化。Protocol Buffers的设计目标是替代XML等传统数据交换格式,提供更高效、更小的数据...

    cocos2d-x protocol buffer 直接可以用的工程文件。

    Protocol Buffer是Google推出的一种数据序列化协议,常用于高效地存储和传输结构化数据。在Cocos2d-x项目中集成Protocol Buffer可以提升游戏的数据交换效率和降低网络通信开销。 标题中的"直接可以用的工程文件...

    Protocol Buffer编译工具包

    1. **Protocol Buffer编译器(protoc)**:这是一个命令行工具,负责将.proto文件转换为不同编程语言的源代码。例如,如果要将.proto文件编译为Java,我们会在命令行中运行protoc并指定输出目录和语言选项。 2. **...

    Protocol_Buffer官网文档中文版

    ### Protocol_Buffer官网文档中文版知识点总结 #### 一、简介与概览 - **Protocol Buffer**是一种用于数据序列化的高效工具,支持多种编程语言(如Java、C++、Python等),能够实现数据的有效存储和传输。 #### ...

    Protocol Buffer 3.0 C++

    Protocol Buffer是Google开发的一种数据序列化协议,它允许开发者定义数据结构,并将其转换为二进制格式进行存储或网络传输。Protocol Buffer 3.0 (简称protobuf) 是该技术的第三个主要版本,提供了更强大的功能和...

    Protocol Buffer sublime text 3插件

    Protocol Buffer是Google开发的一种数据序列化协议,它允许开发者定义数据结构,并在各种数据平台之间交换这些数据。Sublime Text 3是一款广受欢迎的代码编辑器,拥有丰富的插件库来增强其功能。"Protocol Buffer ...

    Google protocol buffer 开发指南

    Google Protocol Buffer(简称Protobuf)是一种由Google开发的跨语言、跨平台的序列化框架,主要用于数据的序列化、反序列化,是一种更灵活、高效、自动化的机制。相比于XML等数据交换格式,Protocol Buffer具有更小...

    ProtocolBuffer

    【Protocol Buffer】是一种高效的数据序列化协议,由Google公司开发并开源。它主要用于结构化数据的描述、传输和存储,其设计目标是提供一种高效、紧凑的二进制数据格式,相比XML和JSON等文本格式,它能显著减少数据...

    Protocol Buffer java版本

    Protocol Buffer是Google开发的一种数据序列化协议,常用于结构化数据的存储和交换。它提供了一种高效、灵活且跨语言的方式,使得不同系统之间能够方便地共享数据。标题中的"Protocol Buffer java版本"指的是...

    Google Protocol Buffer 2.3.0

    **Google Protocol Buffer 2.3.0 知识点详解** Google Protocol Buffers(简称protobuf)是一种高效、灵活且跨平台的数据序列化协议,由Google开发。它允许开发者定义数据结构,然后生成代码来轻松地读写这些数据到...

    Google_Protocol_Buffer_的使用和原理

    ### Google Protocol Buffer 的使用与原理详解 #### 一、Google Protocol Buffer 概览 Google Protocol Buffer(简称 Protobuf)是谷歌公司开发的一种高效且轻便的结构化数据存储格式,适用于多种应用场景,如数据...

    Google Protocol Buffer 的使用和原理.pdf

    Protocol Buffers是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,很适合做数据存储或RPC数据交换格式。它可用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结构数据格式。目前...

    Protocol Buffer技术深入理解(C++实例)

    Protocol Buffer技术是Google开发的一种数据序列化协议,用于高效地编码和解码结构化数据。在C++中,Protocol Buffer提供了强大的工具`protoc`,用于将`.proto`文件转换为对应编程语言(如C++)的源代码,使得开发者...

Global site tag (gtag.js) - Google Analytics