使用protobuf编写数据的最佳实践

时间:2014-04-08 08:10:37

标签: java protocol-buffers

我们需要我们的protobuf消息包含尽可能少的数据。那么我们可以遵循哪些最佳实践来获得最大的实践。例如,将byte[]写为StringByteString?有什么区别?并将Integer列表添加为重复列表或其他内容?

1 个答案:

答案 0 :(得分:2)

  

作为一个例子,将byte []写为Srting或ByteString?

如果要编写二进制数据,请使用bytes字段(ByteString)。 string字段是UTF-8编码的文本,因此不能用于所有可能的字节序列。

  

并将整数列表添加为重复列表或其他内容?

是的,使用重复列表 - 但使用[packed=true] option

基本上,查看整个encoding documentation并找出最适合您的方法。特别是,根据您的实际数据,在各种数字表示之间进行仔细选择。 (如果您正在编写通常非常大的32位值,请考虑使用fixed32格式而不仅仅是int32。)