Java中的协议缓冲区:我们可以有效地处理原始数组吗?

Ant*_*LLE 5 java protocol-buffers

我使用包含一些属性和一千个浮点值(double [])的数组的消息.使用协议缓冲区序列化消息时,由于"packed = true"指令,double值会对齐并紧密存储在消息中.

但是默认情况下,为该消息生成的Java类将double数组表示为数组列表(!),将原始double值加载到对象中,将这些对象分散到内存中,而最后我需要double []表示以进行进一步的聚合. ..

是否有选项可以生成将重复的原始值作为Java原始数组处理的类?

Ant*_*LLE 0

在几个地方讨论过这个话题之后,答案显然是否定

使用协议缓冲区,数字向量的二进制表示是有效的。但目前 Java 实现不可能有效地反序列化这些向量(而不是原始数组,您会得到盒装数字的集合......)