<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      毛毛的小窩 — 關(guān)注技術(shù)交流、讓我們一起成長

      導(dǎo)航

      Google推出Protocol Buffers:爭奪網(wǎng)絡(luò)時代數(shù)據(jù)格式

      北京時間7月8日消息,據(jù)國外媒體報道,谷歌本周一發(fā)布了該公司內(nèi)部使用的開放源代碼數(shù)據(jù)描述語言Protocol Buffers。Protocol Buffers與XML相似,但更簡單、更小、更快。

      谷歌開放源代碼項(xiàng)目經(jīng)理克里斯·迪邦納(Chris DiBona)在一篇博文中寫道,“我們在網(wǎng)絡(luò)上傳輸或在磁盤上存儲的幾乎所有結(jié)構(gòu)化信息都采用了這種語言。我們認(rèn)為Protocol Buffers可能對其他人也有用,因此我們決定將它發(fā)布為開放源代碼軟件。”

      谷歌軟件工程師肯頓·瓦爾達(dá)(Kenton Varda)在公司的開放源代碼博客上發(fā)表文章稱,谷歌使用數(shù)千種不同的數(shù)據(jù)格式,其中大多數(shù)都是結(jié)構(gòu)化數(shù)據(jù)格式。XML無法勝任對這些海量結(jié)構(gòu)化數(shù)據(jù)編碼的重任,谷歌于是開發(fā)了Protocol Buffers。

      瓦爾達(dá)將Protocol Buffers比作是一種界面描述語言,但沒有界面描述語言的復(fù)雜性。他說,Protocol Buffers的主要設(shè)計目標(biāo)之一是簡潔。對Protocol Buffers進(jìn)行解析的速度也很快,比XML要快出至少一個量級。

      谷歌的文檔稱,與具有可比性的XML文件相比,Protocol Buffers文件的尺寸要小3-10倍,解析速度要快20-100倍。

      谷歌發(fā)布的免費(fèi)文件包括采用Java、Python和C++編程語言編寫的Protocol Buffers編譯器源代碼。

      谷歌在一份文檔中表示,該公司還計劃將許多其它軟件項(xiàng)目發(fā)布為開放源代碼軟件。因?yàn)檫@些項(xiàng)目會用到Protocol Buffers,因此谷歌決定首先將它發(fā)布為開放源代碼軟件。


      在Web 2.0 時代,XML格式由于AJAX的風(fēng)行以及RSS的普及而異軍突起。不過隨著Python和Ruby On Rails的走紅,以及各種API的發(fā)布,YAML,JSON也逐漸成名。此次,Google推出了Protocol Buffers,是想讓廣大編程者方便地使用Google網(wǎng)絡(luò)傳輸數(shù)據(jù)的格式。

      什么是Protocol Buffers?

      這是Protocol Buffers主頁上的一段代碼:

      message Person {
      required string name = 1;
      required int32 id = 2;
      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;
      }

      而Protocol Buffers的作用,就是將以上格式的數(shù)據(jù)類型,自動生成Java, Python, and C++的代碼,然后以下一系列代碼就可以直接調(diào)用了:(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); fstream input("myfile", ios::in | ios::binary);
      Person person;
      person.ParseFromIstream(&input);
      cout << "Name: " << person.name() << endl;
      cout << "E-mail: " << person.email() << endl;

      相信所有C++編程者都為定義set,get之類的函數(shù)感到煩人過吧,而Google做的就是幫助你省去這些麻煩,構(gòu)造更利于網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)結(jié)構(gòu)。

      與XML的比較 優(yōu)勢

    3. 更簡單
    4. 比XML小3到10倍體積
    5. 比XML快20到100倍
    6. 更不容易引起歧義
    7. 自動生成可編程的類代碼
      比較:
      cout << "Name: " << person.name() << endl;

      cout << "E-mail: " << person.email() << endl;
      cout << "Name: "
             << person.getElementsByTagName("name")->item(0)->innerText()
             << endl;
      cout << "E-mail: "
             << person.getElementsByTagName("email")->item(0)->innerText()
             << endl; 劣勢
    8. 沒有層次,所以無法和HTML標(biāo)記語言打交道
    9. 如果沒有message的定義,根本無法知道m(xù)essage的意思,而XML是自解釋型的。
      Protocol Buffer主頁    Protocol Buffer下載

    10. posted on 2008-07-10 08:23  mjgforever  閱讀(525)  評論(0)    收藏  舉報

      主站蜘蛛池模板: 污网站在线观看视频| 色一伊人区二区亚洲最大| 老司机精品成人无码av| 一区二区不卡99精品日韩| 亚洲理论在线A中文字幕| 怀远县| 国产肥臀视频一区二区三区| 国产线播放免费人成视频播放| 淮阳县| 欧美精品在线观看视频| 暖暖 在线 日本 免费 中文| 北宁市| 婷婷丁香五月亚洲中文字幕| 亚洲国产在一区二区三区| 国产微拍一区二区三区四区| 亚洲a∨无码一区二区三区| 国产中文99视频在线观看| 九九热视频在线观看视频| 亚洲欧洲色图片网站| 亚洲欧洲色图片网站| 色一伊人区二区亚洲最大| 午夜免费福利小电影| 一区二区三区岛国av毛片| 国产欧美综合在线观看第十页 | 亚洲av无码精品色午夜| 成人拍拍拍无遮挡免费视频| 精品视频在线观看免费观看| 少妇粗大进出白浆嘿嘿视频| 无翼乌口工全彩无遮挡h全彩| 视频免费完整版在线播放| 国产精品午夜福利精品| 灵山县| 久久国产乱子精品免费女| 免费人成网站视频在线观看 | 国产偷窥熟女高潮精品视频| 人人做人人澡人人人爽| 欧洲美熟女乱又伦AV影片| 精品九九人人做人人爱| 免费无码又爽又刺激网站直播| 午夜自产精品一区二区三区| 无码人妻精品一区二区三区下载|