Protocol buffers grpc c+中的零拷贝字节+; 我刚开始使用GRPC,我注意到C++中的字节编译成了代码> STD::String ,这意味着每个服务的GRPC对象都需要复制到一个新的缓冲区,因为 STD::String

Protocol buffers grpc c+中的零拷贝字节+; 我刚开始使用GRPC,我注意到C++中的字节编译成了代码> STD::String ,这意味着每个服务的GRPC对象都需要复制到一个新的缓冲区,因为 STD::String,protocol-buffers,grpc,Protocol Buffers,Grpc,我不想在使用前将每个对象复制到新缓冲区(分配过多) 是否有已知的解决方案,或者我使用gRPC是错误的?gRPC只使用protobufs。通过调用生成的release\u XXX()方法,可以将内容移出protobuf消息 string*release\u foo():释放字段的所有权并返回string对象的指针。调用此函数后,调用者获得分配的string对象的所有权,foo()将返回空字符串/空字节 gRPC只使用protobufs。通过调用生成的release\u XXX()方法,可以将内容移

我不想在使用前将每个对象复制到新缓冲区(分配过多)


是否有已知的解决方案,或者我使用gRPC是错误的?

gRPC只使用protobufs。通过调用生成的
release\u XXX()
方法,可以将内容移出protobuf
消息

string*release\u foo()
:释放字段的所有权并返回
string
对象的指针。调用此函数后,调用者获得分配的
string
对象的所有权,
foo()
将返回空字符串/空字节


gRPC只使用protobufs。通过调用生成的
release\u XXX()
方法,可以将内容移出protobuf
消息

string*release\u foo()
:释放字段的所有权并返回
string
对象的指针。调用此函数后,调用者获得分配的
string
对象的所有权,
foo()
将返回空字符串/空字节


我需要从std::string而不是protobuf生成的对象释放二进制数据。无法从
std::string
释放二进制数据。如果您想在没有任何副本的情况下使用gRPC,则需要组织存储以在内部使用
std::string
。我需要从std::string释放二进制数据,而不是从protobuf生成的对象释放二进制数据。无法从
std::string
释放二进制数据。如果您想在没有任何副本的情况下使用gRPC,则需要组织存储以在内部使用
std::string