在 Java 中使用 Flatbuffers 进行字符串重复数据删除

Cpp API引用了一个CreateSharedString函数来执行 String 重复数据删除。sharedflatbuffers DSL 中似乎也有一个特定的属性。

不幸的是,我在 Java API 中找不到等效项,也找不到关于该shared属性的任何文档。

是否可以使用 Java API 创建共享字符串?如果是,怎么办?

我应该维护一个字符串映射及其调用 FlatBufferBuilder#createString 的偏移量并对该映射执行检查,还是 flatbuffers 在 Java 中提供更好的方法?


MM们
浏览 107回答 1
1回答

慕桂英546537

是的,如果需要,您可以自己做。如果您序列化从 2 个或更多位置获得的偏移量createString,则您正在使用共享。使用您自己的映射来查看您是否已经序列化了一个字符串并重新使用它的偏移量就可以了。遗憾的是,这当然会使序列化过程变慢(并使用更多内存),但如果您有很多重复字符串,这可能是值得的。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java