【问题标题】:Way to deep copy flatbuffer object深拷贝 flatbuffer 对象的方法
【发布时间】:2017-11-22 08:24:15
【问题描述】:

我用 flatbuffer 表示我的数据。目前我遇到了一个问题,我正在将 flatbuffer 中的一大堆对象分成一些小块。

直接的方法是为每个片段创建一个 flatbuffer 构建器,然后将对象写入该构建器。但是当object有点复杂的时候,逐个struct来复制data是一件相当繁琐的工作。

由于 flatbuffer 存储相对偏移量,理论上我认为可以简单地复制字节缓冲区来将对象复制到另一个 flatbuffer 实例中。是否已经有可以深拷贝的东西了?我现在正在使用java。谢谢

谢谢

【问题讨论】:

    标签: java deep-copy flatbuffers


    【解决方案1】:

    这比您想象的要复杂,因为表及其子表在内存中不一定是连续的,并且可能与其他表共享 vtable,等等。

    最简单的方法是使用嵌套的 FlatBuffers(将子对象粘贴到字节向量中),因为它可以轻松复制。

    C++中有一个使用反射的深拷贝功能,但是速度慢,需要二进制模式文件,还没有移植到Java。新的“迷你反射”表将适用于深拷贝,但到目前为止也是 C++。

    【讨论】:

      猜你喜欢
      • 2015-09-14
      • 1970-01-01
      • 2012-06-19
      • 2019-11-17
      • 1970-01-01
      • 1970-01-01
      • 2011-04-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多