国精品产品一区,深夜福利视频一区二区,日韩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自拍,国产一区二区高清
国产三级一区| 亚洲欧洲一区二区天堂久久| 国产亚洲永久域名| 亚洲成人一区| 国产精品99视频| 亚洲女同av| 久草免费在线视频| 日韩在线看片| 亚洲天堂久久| 性色一区二区| 亚洲精品伦理| 日韩高清三区| 久久99蜜桃| 91综合网人人| 色老板在线视频一区二区| 欧美日韩在线播放视频| 亚洲精品91| 午夜久久av| 久久国产精品免费一区二区三区| 日韩国产在线不卡视频| 中文字幕中文字幕精品| 亚洲综合日韩| 日产欧产美韩系列久久99| 国产免费av国片精品草莓男男| 精品中文一区| 亚洲综合日韩| 7777精品| 国产一区二区精品福利地址| 国产成人77亚洲精品www| 成人免费电影网址| 中文无码日韩欧| 久久不卡日韩美女| 四虎4545www国产精品 | 久久国产精品美女| 国产中文字幕一区二区三区| 成人午夜网址| 国产精品99免费看| 日韩高清中文字幕一区| 黄色精品视频| 一区在线视频观看| 91精品尤物| 欧美成人精品三级网站| 视频在线观看一区| 大香伊人久久精品一区二区| 激情欧美一区二区三区| 日本欧美在线| 久久精品亚洲人成影院| 天堂va在线高清一区| 麻豆国产精品一区二区三区| 婷婷亚洲综合| 国产欧美综合一区二区三区| 久久精品动漫| 国产欧美一区二区三区米奇| 午夜av成人| 久久精品超碰| 蜜桃视频欧美| 麻豆传媒一区二区三区| 99在线观看免费视频精品观看| 91精品亚洲| 蜜桃av一区二区| 麻豆久久一区| 亚洲自拍另类| а√天堂中文在线资源8| 欧美综合二区| 国产精品高颜值在线观看| 亚洲精品在线a| 欧美精品高清| 国产图片一区| 亚洲一区二区三区高清不卡| 国产精品二区不卡| 97久久超碰| 亚洲黄页一区| av资源中文在线| 91精品丝袜国产高跟在线| 欧美日韩色图| 免费在线播放第一区高清av| 丝袜美腿成人在线| 欧美日韩国产v| 欧美一级网址| 免费在线观看一区二区三区| 精品三级久久| 国产一区二区三区不卡av | 午夜在线一区| 麻豆国产在线| 久久精品72免费观看| 国产亚洲午夜| 亚洲性视频h| 国产91欧美| 国产精品久一| 综合五月婷婷| 蜜桃伊人久久| 999在线观看精品免费不卡网站| 久久xxxx精品视频| 日韩1区在线| 国产亚洲精品精品国产亚洲综合| 久久99精品久久久久久园产越南| 国产精品乱战久久久| 亚洲激情久久| 久久精品1区| 日韩黄色大片网站| 国产一区二区色噜噜| 欧美激情日韩| 欧美黑人巨大videos精品| 日韩超碰人人爽人人做人人添| 国产毛片精品| 四虎国产精品免费久久| 蜜桃久久久久久| 99国产精品自拍| 欧美成人午夜| 99精品在线观看| 在线天堂中文资源最新版| 久久精品欧洲| 国产精品白丝久久av网站| 国产精品一区毛片| 国产日韩中文在线中文字幕 | 亚洲乱码视频| 99在线观看免费视频精品观看| 亚洲欧美在线专区| 国产一区二区精品| 欧美成人久久| 国产高清一区| 蜜桃tv一区二区三区| 久久精品亚洲人成影院| 99精品在线| 午夜国产精品视频| 1024精品久久久久久久久| 亚洲小说欧美另类婷婷| 精品在线91| 国产亚洲精品v| 亚洲午夜久久| 91精品美女| 国产精品主播| 你懂的国产精品永久在线| 麻豆一区二区三| 国产精品第一国产精品| 久久久91麻豆精品国产一区| 精品香蕉视频| 天堂中文av在线资源库| 成人日韩在线| 日韩一区二区免费看| 蜜桃视频一区二区| 久久精品av麻豆的观看方式| 国产精品啊v在线| 欧美国产美女| 在线成人直播| 亚洲精品一级| 91精品国产一区二区在线观看| 91麻豆国产自产在线观看亚洲| 国产一级久久| 一区二区三区四区精品视频| 四虎在线精品| 国产精品极品在线观看| 91一区二区| 欧美日韩水蜜桃| 蜜桃久久精品一区二区| 欧美日韩午夜电影网| 国产成人在线中文字幕| 欧美成人亚洲| 日韩avvvv在线播放| 福利在线一区| 亚洲成人免费| 在线亚洲免费| 日本vs亚洲vs韩国一区三区二区| 国产精品久久观看| 亚洲欧美久久| 久久久久久久久99精品大| 国产精品mm| 国产精品久久久久久妇女| 天堂va在线高清一区| 久久精品97| 91大神在线观看线路一区| 午夜国产欧美理论在线播放| 国产精品欧美大片| 日本不良网站在线观看| 综合激情视频| 日韩成人精品一区二区三区 | 91九色精品| 精品国产一级| 亚洲国产一区二区三区在线播放| 精品一区二区三区四区五区| 久久99精品久久久久久园产越南 | 丝袜美腿亚洲色图| 国产96在线亚洲| 欧美成人a交片免费看| 五月天综合网站| 国产精品午夜av| 婷婷综合在线| 国产精品流白浆在线观看| 激情婷婷综合| 久久国产精品美女| 99成人在线| 国产精品毛片久久| 日韩区一区二| 亚洲一级特黄| 欧美激情网址| 亚洲一区欧美二区| 国产精品99一区二区三区| 欧美日韩三区| 韩国女主播一区二区三区| 丝瓜av网站精品一区二区|