【问题标题】:String Deduplication with Flatbuffers in JavaJava中使用Flatbuffers的字符串重复数据删除
【发布时间】:2019-08-01 08:36:08
【问题描述】:

Cpp API 引用 CreateSharedString 函数来执行字符串重复数据删除。 flatbuffers DSL 中似乎还有一个特定的shared 属性。

很遗憾,我在 Java API 中找不到等效项,也找不到有关 shared 属性的任何文档。

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

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

【问题讨论】:

    标签: java flatbuffers


    【解决方案1】:

    是的,如果需要,您可以自己执行此操作。如果您在 2 个或更多位置序列化从 createString 获得的偏移量,则您正在使用共享。使用你自己的映射来查看你是否已经序列化了一个字符串并重用它的偏移量就可以了。

    遗憾的是,这当然会使序列化过程变慢(并使用更多内存),但如果您有很多重复的字符串,这可能是值得的。

    【讨论】:

    • 感谢您的确认。我最终得到了一个自定义地图来重用偏移量。
    猜你喜欢
    • 2015-12-27
    • 2015-03-13
    • 1970-01-01
    • 2012-10-21
    • 2016-11-03
    • 1970-01-01
    • 2014-02-19
    • 1970-01-01
    • 2012-05-09
    相关资源
    最近更新 更多