C++ Protobuf中的ParseFromArray和ParseFromString之间有什么区别?
我将对protobuf格式的大量数据(字符串等)进行反序列化,我可以使用ParseFromArray和ParseFromString进行反序列化。这两者有什么区别?C++ Protobuf中的ParseFromArray和ParseFromString之间有什么区别?,c++,performance,protocol-buffers,C++,Performance,Protocol Buffers,我将对protobuf格式的大量数据(字符串等)进行反序列化,我可以使用ParseFromArray和ParseFromString进行反序列化。这两者有什么区别? 一个在性能上比另一个好吗?在功能上没有区别 如果您的数据已保存在std::string中,则您可以使用任一函数。但是,如果数据保存在数组或std::vector或其他容器中,则可以使用ParseFromArray避免创建临时字符串对象。谢谢。因此,对于相同的数据,如果我将其保存为vector和ParseFromArray,它将通过避
一个在性能上比另一个好吗?在功能上没有区别
如果您的数据已保存在
std::string
中,则您可以使用任一函数。但是,如果数据保存在数组或std::vector
或其他容器中,则可以使用ParseFromArray
避免创建临时字符串对象。谢谢。因此,对于相同的数据,如果我将其保存为vector
和ParseFromArray
,它将通过避免临时字符串对象而获得比string+ParseFromString
更好的性能。我说的对吗?不完全对。如果将其另存为vector
,则应使用ParseFromArray
避免临时对象。但是,如果将其另存为string
,则可以调用ParseFromArray
或ParseFromString
,您将获得与vector
+ParseFromArray
相同的性能。