Cpp API引用了一個(gè)CreateSharedString函數(shù)來執(zhí)行 String 重復(fù)數(shù)據(jù)刪除。sharedflatbuffers DSL 中似乎也有一個(gè)特定的屬性。不幸的是,我在 Java API 中找不到等效項(xiàng),也找不到關(guān)于該shared屬性的任何文檔。是否可以使用 Java API 創(chuàng)建共享字符串?如果是,怎么辦?我應(yīng)該維護(hù)一個(gè)字符串映射及其調(diào)用 FlatBufferBuilder#createString 的偏移量并對(duì)該映射執(zhí)行檢查,還是 flatbuffers 在 Java 中提供更好的方法?
1 回答

慕桂英546537
TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超10個(gè)贊
是的,如果需要,您可以自己做。如果您序列化從 2 個(gè)或更多位置獲得的偏移量createString
,則您正在使用共享。使用您自己的映射來查看您是否已經(jīng)序列化了一個(gè)字符串并重新使用它的偏移量就可以了。
遺憾的是,這當(dāng)然會(huì)使序列化過程變慢(并使用更多內(nèi)存),但如果您有很多重復(fù)字符串,這可能是值得的。
添加回答
舉報(bào)
0/150
提交
取消