我正在寻找一个有效的C对象序列化机制

时间:2010-07-16 18:59:18

标签: c performance serialization malloc

我正在寻找一种在C中实现序列化机制的有效方法。我知道将数据存储在JSON中会很简单,然后在解析过程中重新初始化所有内容。

但是我想知道是否有可能(或者值得)编写一些只需要我的struct(包含动态分配的数据),将其所有数据和所有指针转换为缓冲区的东西,所以我可以放置它缓冲到文件中。然后我会读取文件,检索内容,malloc文件内容大小的位置,并将内容放入该位置。

我觉得可以这样做(将所有指针转换为某种本地指向方案,并将所有结构适当地放入缓冲区以匹配这些指针)。我想知道这样的第三方序列化程序是否存在,或者是否值得实现它。

1 个答案:

答案 0 :(得分:3)

您可以查看协议缓冲区:http://code.google.com/p/protobuf/,它们具有不错的c tool support

但是,根据我的经验,首先要用最简单,最用户可读的方式(用于调试序列化数据)。设计时考虑到您可能需要稍后更改它。

然后,如果磁盘或速度限制绝对正确,那么你需要切换到更好的东西。基本上就像(几乎)所有事情都在最后进行优化。