国精品产品一区,深夜福利视频一区二区,日韩av自拍,国产一区二区高清

您的位置: 首頁  >  軟件下載  >  編程開發  >  FlatBuffers
95.56%
4.44%

FlatBuffers v2.0.0

  • 軟件介紹
  • 相關下載

FlatBuffers是一款序列化庫,您可以在開發游戲或者上開發其他軟件的時候使用這款軟件提升數據訪問效率,軟件主要的優勢就是在不解析/解包的情況下訪問序列化數據,讓數據讀取更加快速,對于需要讀取龐大數據資源的游戲來說非常有幫助,軟件支持很多語言編輯,可以將其部署到任意平臺開發,您可以為自己的軟件附加序列化數據讀取功能,解決數據讀取效率慢的問題,軟件可以使用的場景非常多,例如開源移動游戲引擎Cocos2d-x使用它來序列化所有游戲數據,例如通訊軟件、網站平臺可以通過這款軟件提升數據讀取效率,提升加載網站帖子的速度!

FlatBuffers軟件功能

1、在不解析/解包的情況下訪問序列化數據

FlatBuffers與眾不同之處在于,它在平坦的二進制緩沖區中表示層次結構數據,使得即使不進行解析/解包也可以直接訪問分層數據,同時還支持數據結構的演進(forward /向后兼容)。

2、內存效率和速度

訪問數據所需的唯一內存是緩沖區的內存。它需要0個額外的分配(在C ++中,其他語言可能會有所不同)。FlatBuffers也非常適合與mmap(或流)一起使用,僅要求將部分緩沖區存儲在內存中。訪問僅通過一個額外的間接調用(一種vtable)即可接近原始結構訪問的速度,以允許格式演變和可選字段。它針對那些不希望花費時間和空間(許多內存分配)來訪問或構造序列化數據的項目,例如在游戲或任何其他對能敏感的應用程序中。

3、靈活

可選字段不僅意味著您具有很好的前后兼容(對于長壽命游戲也越來越重要:不必使用每個新版本更新所有數據!)。這也意味著您在寫入哪些數據,不寫入哪些數據以及如何設計數據結構方面有很多選擇。

4、微小的代碼占用空間

生成的代碼量很少,只有一個小的標頭作為最小的依賴項,非常易于集成。同樣,請參閱基準測試部分以了解詳細。

5、強類型

錯誤發生在編譯時,而不是手動編寫重復且容易出錯的運行時。可以為您生成有用的代碼。

6、使用方便

生成的C ++代碼允許簡潔的訪問和構造代碼。是可選功能,可以在需要時在運行時高效地解析模式和類似ON的文本表示形式(比其他ON解析器更快,更高效地使用內存)。

Java,Kotlin和Go代碼支持對象重用。C#具有高效的基于結構的訪問器。

7、無需依賴項的跨平臺代碼

C ++代碼可與任何最新的gcc / clang和VS2010一起使用。隨附用于測試和示例的構建文件(Andid .mk文件,以及用于所有其他平臺的cmake)。

FlatBuffers軟件特色

FlatBuffers是跨平臺序列化庫,旨在最大程度地提高內存效率。它使您可以直接訪問序列化的數據,而無需先解析/拆包,同時仍具有很好的前向/向后兼容。

支持的編程語言

C++

C#

C

Dart

Go

Java

JavaScpt

Lobster

Lua

PHP

Python

Rust

TypeScpt

FlatBuffers教程

在C中使用

C語言綁定存在于名為FlatCC的單獨項目中。

該flatcc?模式編譯器可以通過一個C庫在線生成代碼下線為好。它還可以生成緩沖區驗證器和快速ON解析器,打印機。

已經采取了非常謹慎的措施來確保與主要flatc項目的兼容。

支持平臺

Ubuntu(clang / gcc,ninja / gnu make)

OS-X(c語/ gcc,忍者/ gnu make)

Windows MSVC 2010、2013、2015年

CI在OS-X,Ubuntu和Windows上構建gcc,clang和MSVC的最新版本,并偶爾編譯較舊的編譯器版本。請參閱主要項目狀態。

包括Centos在內的其他平臺也可能工作良好,但未經過定期測試。

Monster示例項目是專門為C99編寫的,以遵循C ++版本,因此,該示例項目不適用于MSVC 2010。

模塊化對象創建

在本教程中,我們使用了調用Monster__as_ot來創建根緩沖區對象,因為在簡單的用例中,這更容易。有時我們需要更多的模塊化,因此我們可以重復使用函數以相同的方式創建嵌套表和根表。為此,我們需要flatcc_builder_buffer__call。最好將flatcc_builder呼叫隔離在最高驅動程序級別,這樣我們得到:

在自頂向下方法中,start/endvs適用相同的原理start/end_as_ot。

自上而下的例子

本教程使用自下而上的方法。在C語言中,通過開始和結束彼此嵌套的對象,也可以使用自頂向下的方法。在本教程中,沒有深層嵌套,因此差異是有限的,但是它說明了這一點:

基本思考

C-API確實支持通過從reflection.fbs架構生成的代碼讀取二進制架構(.bfbs)文件,示例用法說明了如何使用此文件。反模式文件是在運行時分發中預先生成的。

變異與反思

C-API不像C ++一樣支持變異反,閱讀器接口也不支持變異標量(而且即使在驗證之后,這樣做也是不安全的)。

生成的讀取器接口在將向量強制轉換為變異類型后支持就地排序向量,因為在構建緩沖區時這樣做并不實際。構建器文檔中對此進行了介紹。

反示例利用此功能按名稱查找對象。

可以使用現有緩沖區中的復雜對象作為源來構建新緩沖區。由于直接復制語義而無需字節序轉換或臨時堆棧分配,因此這可能非常有效。

標量,結構和字符串以及它們的向量都可以用作源。

當前不可能使用現有的表或表的向量作為源,但是有可能在某個時候添加對此的支持。

命名空間

FLATBUFFERS_WRAP_NAMESPACE當每個函數都有一個很長的名稱空間前綴時,本教程中使用的方法很方便。但這并不總是最好的方法。如果名稱空間不存在,或者簡單而內容豐富,那么我們不妨直接使用前綴。上面提到的反示例使用此方法。

現有成員

并非所有語言都支持對是否存在字段的測試,但是在C語言中,我們可以通過測試詳細說明本教程的閱讀器部分。記得將mana其設置為默認值150,因此不應存在。

添加工會的替代方法

在本教程中,我們使用了一個調用來添加聯合。在這里,我們展示了完成同一件事的不同方法。最后一種形式很少使用,但這是底層的實現方式。通過在不同時間點添加類型和數據,可以將表中的小值分組在一起。

為什么不與 flatc 工具集成?

考慮了如何將C代碼生成器集成到flatc工具中,但是它要么要求刪除模式編譯器的C實現,否則將導致過多的代碼重復,或者必須使用復雜的中間表示形式。發明的。這兩種選擇都不是很吸引人,使用flatcc工具代替使用flatcFlatBuffers C運行時庫也沒什么大不了的。

編寫模式

模式語言(又名IDL,接口定義語言)的語法對于任何C語言族的用戶和其他IDL的用戶都應該非常熟悉。讓我們先來看一個例子:

表是在FlatBuffers中定義對象的主要方式,由名稱(此處為Monster)和字段列表組成。每個字段都有一個名稱,類型和可選的默認值。如果未在架構中指定默認值,則它將0用于標量類型或null其他類型。某些語言支持將標量默認設置設置為null。這使得標量是可選的。

字段不必出現在導線表示中,并且可以在構造對象時選擇忽略字段。您可以靈活地添加字段,而不必擔心數據膨脹。此設計也是FlatBuffer的向前和向后兼容的機制。注意:

您只能在表定義的末尾在架構中添加新字段。較舊的數據仍將正確讀取,并在讀取時為您提供默認值。較舊的代碼將僅忽略新字段。如果要靈活地對架構中的字段使用任何順序,可以手動分配ID(與協議緩沖區類似),請參見id下面的屬。

您無法從架構中刪除不再使用的字段,但是您可以停止將它們寫入數據中以達到幾乎相同的效果。另外,您可以像deprecated上面的示例中那樣標記它們,這將防止在生成的C ++中生成訪問器,作為強制不再使用該字段的方法。(注意:這可能會代碼!)。

您可以更改字段名稱和表名稱,如果可以的話,可以使用代碼中斷功能,直到您也將其重命名為止。

結構

類似于表,僅現在所有字段都不是可選的(因此也沒有默認值),并且可能不會添加或棄用字段。結構只能包含標量或其他結構。將其用于簡單的對象,這些對象您可以確定不會進行任何更改(在示例中非常清楚Vec3)。結構使用的內存少于表,并且訪問速度甚至更快(它們始終以內聯方式存儲在其父對象中,并且不使用虛擬表)。

種類

內置標量類型為

8位:byte( int8),ubyte(uint8),bool16位:short(int16),ushort(uint16)

32位:int(int32),uint(uint32),float(float32)

位:long(int),ulong(uint),double(float)

括號中的類型名稱是別名,例如uint8可以代替ubyte,并且int32可以代替int而不影響代碼生成。

內置非標量類型:

任何其他類型的向量(以表示[type])。不支持嵌套向量,而是可以將內部向量包裝在表中。

stng,可能只包含UTF-8或7位ASCII碼。對于其他文本編碼或常規二進制數據,請使用向量([byte]或[ubyte])。

對其他表或結構,枚舉或聯合的引用(請參見下文)。

一旦使用了字段,就無法更改字段類型,但相同大小的數據除外,其中areinterpret_cast會給您帶來理想的結果,例如uint,int如果當前數據中還沒有值使用高位,則可以將a更改為a 。

數組

數組是固定長度元素的便捷捷徑。數組可用于替換以下架構:

兩種表示形式都是二進制等效的。

目前僅在中支持數組struct。

猜你喜歡

国精品产品一区,深夜福利视频一区二区,日韩av自拍,国产一区二区高清
日韩综合在线| 亚洲色诱最新| 日韩欧美视频专区| 国产伦理久久久久久妇女| 亚洲精品国产日韩| 日韩精选在线| 久久av偷拍| 鲁大师影院一区二区三区| 日韩黄色av| 久久av国产紧身裤| 91国语精品自产拍| 国产精品a久久久久| 亚洲欧洲日本mm| 99久久久久| 视频一区二区三区在线| 91成人网在线观看| 欧美亚洲色图校园春色| 亚洲精品影视| 国产无遮挡裸体免费久久| 成人羞羞在线观看网站| a国产在线视频| 国产高清不卡| 日韩毛片视频| 婷婷激情综合| 亚洲资源网站| 国产综合视频| 日韩在线a电影| 免费污视频在线一区| 国产人成精品一区二区三| 国产亚洲欧美日韩精品一区二区三区 | 国产精品2023| 黄色在线观看www| 免费人成黄页网站在线一区二区| 亚洲一区中文| 国产情侣一区在线| 麻豆成人91精品二区三区| 日韩国产专区| 国产一区日韩| 成人黄色av| 欧美有码在线| 先锋影音国产一区| 成人国产精品| 精品亚洲a∨| 久久精品天堂| 国产高清日韩| 国产一区三区在线播放| 91综合网人人| 亚洲精品美女91| 在线国产精品一区| 日韩精品亚洲专区在线观看| 99亚洲视频| 亚洲精品系列| 日韩三级一区| 亚洲v天堂v手机在线| 一区在线免费| av中文字幕在线观看第一页 | 精品国产免费人成网站| 成人一区不卡| 99精品网站| 久久三级福利| 欧美 日韩 国产精品免费观看| 成人在线超碰| 欧美另类综合| 日本欧美国产| 精品五月天堂| 国内自拍视频一区二区三区| 国产精品久久久一区二区| 久久亚州av| 国产精品亚洲综合久久| 精品免费在线| 中文字幕成在线观看| 色偷偷偷在线视频播放| 日韩精品1区2区3区| 国产精品久久久久av蜜臀| 国产成人精品一区二区三区视频| 中文欧美日韩| 亚洲一区二区三区高清| 精品视频一区二区三区四区五区| 日本不卡高清| 欧美影院三区| 日韩国产在线一| 久久精品123| 日韩欧美中文| 丝袜美腿诱惑一区二区三区| 视频在线观看91| 国产伦理久久久久久妇女| 亚洲精品精选| 尤物tv在线精品| 国产精品黄色| 免播放器亚洲一区| 最新亚洲国产| 国产精品久久亚洲不卡| 欧美综合二区| 高清一区二区三区| 热久久免费视频| 久久av免费| 国产精品久久久久av蜜臀| 国产精品欧美大片| 丝袜美腿亚洲一区| 亚洲欧美日韩国产| 久久99蜜桃| 国产精品一级| 国产一卡不卡| 麻豆视频一区| 国产探花一区| 日韩在线二区| 日韩高清成人在线| 日本一不卡视频| 日韩欧美少妇| 日本综合视频| 亚洲综合电影| 亚洲va在线| 免费在线观看不卡| 亚洲一区二区免费看| 亚洲专区视频| 高清在线一区| 亚洲成人va| 久久激五月天综合精品| 超碰成人av| 日本黄色精品| 日av在线不卡| 国产精品白丝久久av网站| 黄色亚洲免费| 国产精品久久久久蜜臀| 亚洲午夜黄色| 色在线视频观看| 99精品在线免费在线观看| 久久影视三级福利片| 好吊日精品视频| 国产剧情一区二区在线观看| 视频在线观看一区二区三区| 成人精品久久| 国产精品久久久久毛片大屁完整版| 午夜精品免费| 精品捆绑调教一区二区三区| 亚洲高清影视| 视频在线观看一区| 91精品在线免费视频| 国产精品伦一区二区| 久久久久久色 | 都市激情国产精品| 精品国产一区二区三区噜噜噜| 日韩av电影一区| 日韩动漫一区| 国产精品大片免费观看| 国产探花在线精品一区二区| 国产欧美日韩免费观看| 国产精品chinese| 国语对白精品一区二区| 7777精品| 国产一区国产二区国产三区| 国产美女高潮在线| 99久久九九| 蜜臀久久99精品久久久久宅男| 日韩精品一二三| 亚洲资源网站| 欧美日韩99| 成人欧美一区二区三区的电影| 三级精品视频| 久久伊人久久| 亚洲综合电影一区二区三区| 亚洲欧美一级| 精品国产一区二区三区噜噜噜| 久久久成人网| 久久一区精品| 亚洲精品精选| 日韩一二三区在线观看| 免费一级欧美在线观看视频| 色婷婷久久久| 亚洲理论在线| 欧美性www| 91精品丝袜国产高跟在线| 国产视频一区二| 国产va免费精品观看精品视频| 日韩精品午夜视频| 午夜国产一区二区| 国产精品视频3p| 一区二区视频欧美| 久久久久美女| 色老板在线视频一区二区| 日本亚洲欧美天堂免费| 久久成人福利| 日韩午夜高潮| 日本午夜精品久久久| 日产精品一区| 欧美亚洲三区| 精品三级在线| 欧美日韩xxxx| 国产尤物精品| 日本久久二区| 麻豆成人av在线| 亚洲一区成人| 青青久久av| 麻豆久久一区二区| 免费在线观看成人| 蜜臀av在线播放一区二区三区| 91精品国产自产在线丝袜啪| 国产欧美自拍| 快she精品国产999| 久久国产精品免费精品3p|