我有一条简单的消息,其中包含大量重复的数字字段:
syntax = "proto3";
option cc_enable_arenas = true;
message bigData{
repeated double info = 1;
}
在运行时,数据到达时已经分配。这就是我尝试将其封装到消息中的方式(使用 arena):
void set_data(std::unique_ptr<double[]> table, int size, bigData* message){ /* suppose message is valid */
google::protobuf::Arena arena;
google::protobuf::Arena::CreateArray<double>(&arena,size); /*(0)*/
message->clear_info();
for (int i = 0; i < size; i++) {
net->mutable_info()->Add(table[i]);
}
}
- 这是正确的用法吗?
- 有没有办法告诉竞技场这个已经分配的数据属于已经初始化的消息?
- 有没有办法告诉竞技场我要分配的内存
(0)
已经存在?
- 如何最大限度地减少不必要的数据分配/释放?
Update:* @Azmisov 提出的相关问题:https://github.com/protocolbuffers/protobuf/issues/8817 https://github.com/protocolbuffers/protobuf/issues/8817
None
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)