之间有效率差异吗

my_msg.SerializeToOstream(&std::cout);


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



Google文档并没有说太多:
  • Message::SerializeToOstream
  • MessageLite::SerializeToZeroCopyStream
  • 最佳答案

    您可以检查源代码here。基本上,它们是相同的。

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

    10-07 12:30