使用std :: cout时SerializeToZeroCopyStream和SerializeToOstream有什么区别?

时间:2018-03-28 12:18:53

标签: c++ protocol-buffers

之间是否有任何效率差异
my_msg.SerializeToOstream(&std::cout);

google::protobuf::io::ZeroCopyOutputStream zcos(&std::cout);
my_msg.SerializeToZeroCopyStream(&zcos);

Google文档没有多说:

1 个答案:

答案 0 :(得分:1)

您可以查看源代码here。基本上,它们都是一样的。

bool Message::SerializeToOstream(std::ostream* output) const {
  {
    io::OstreamOutputStream zero_copy_output(output);
    if (!SerializeToZeroCopyStream(&zero_copy_output)) return false;
  }
  return output->good();
}