我有一个用于日志记录数据的协议缓冲区。
message Message {
required double val1 = 1;
optional int val2 = 2;
}
message BigObject {
repeated Message message = 1;
}
我每秒钟收到一条消息。它们与我的BigObject一起存储在内存中,并用于某些任务。但同时,我希望将这些消息存储在文件中以备份,以防应用程序崩溃。每次都简单地写入BigObject将是浪费时间的。我试图找到一种方法,只写入自上次写入文件以来添加的消息。有没有办法做到这一点?
msg->SerializeToZeroCopyStream(output);
100次时,文件大小为3800, 但是当我执行了bigObject->SerializeToZeroCopyStream(output);
时,文件大小为4000。 bigObject包含100个msg。 所以我认为我们漏掉了什么。 - Evgen Bodunov