我想检查proto buffer是否是我使用的最好的序列化程序,我的研究发现没有其他的东西接近。 我正在研究java后端和android(java)移动应用程序,但是有可能在不太遥远的未来创建其他客户端,所以我想要跨平台的东西。 数据结构的草图:proto缓冲区的局限性 - 加载部分数据和共享字符串
message All {
repeated Line lines = 1;
Common common = 2;
}
有一对夫妇数百行的对象,每一行是相当复杂的,需要自行〜100 KB。
两个问题我看到原缓冲 - 在应用程序启动时,我需要对现有数据的只是一部分 - 只是“普通”和“行”的基本信息。是否可以加载部分数据? - 每个Line对象都包含数百个字符串,但在几个Line对象中会出现相同的字符串,所以我想尽力在这些对象之间共享它们。它可能在原型buf级别上,还是需要成为应用程序级别的一部分?
谢谢!
您是否考虑过使用多个分隔邮件? –
“是否可以加载部分数据”否。您需要将它们存储在单独的消息中。 –
我会认定:您可以跳过部分有线格式的协议缓冲区,因为消息的大小是已知的。但是这听起来像是你必须阅读'Line'消息才能确定要阅读的相关内容。也许你可以有另一个领域,比如'重复Line basic_lines';但你仍然需要编写一个自定义解析器来提取你感兴趣的东西。 –