深层复制flatbuffer对象的方法

时间:2017-11-22 08:24:16

标签: java deep-copy flatbuffers

我用flatbuffer代表我的数据。目前我遇到的问题是我将扁平缓冲器中的大量物体分成一些小块。

直接的方法是为每个部分创建一个flatbuffer构建器,然后将该对象写入该构建器。但是当对象有点复杂时,按结构复制数据结构是一项相当繁琐的工作。

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

由于

1 个答案:

答案 0 :(得分:0)

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

最简单的方法是使用嵌套的FlatBuffers(在子字符向量中粘贴一个子对象),因为它可以轻易地复制。

在C ++中有一个使用反射的深层复制功能,但它很慢,需要二进制模式文件,还没有移植到Java。新的"迷你反射"表适用于深层复制,但到目前为止只适用于C ++。