ByteSize()方法的复杂性 < C++协议缓冲区的方法>代码> ByTeSeIe()/的复杂性是什么?换句话说,是在我设置参数时计算的大小,并在内部存储在协议缓冲区中,还是在我调用ByteSize()时完成计算。如果是后者,那么对于大型协议缓冲区对象来说,这可能会非常昂贵,对吗?
其他函数的文档似乎暗示了答案:ByteSize()方法的复杂性 < C++协议缓冲区的方法>代码> ByTeSeIe()/的复杂性是什么?换句话说,是在我设置参数时计算的大小,并在内部存储在协议缓冲区中,还是在我调用ByteSize()时完成计算。如果是后者,那么对于大型协议缓冲区对象来说,这可能会非常昂贵,对吗?,c++,protocol-buffers,C++,Protocol Buffers,其他函数的文档似乎暗示了答案: SpaceUsed()明显比ByteSize()慢,因为它是使用反射实现的(而不是为ByteSize()生成的代码实现)与ByteSize()类似,它的CPU时间与为proto定义的字段数成线性关系 及 ByteSizeLong()在为proto定义的字段数量上通常是线性的 实际上,我没有看到关于ByteSize()本身复杂性的描述,只是这样: int ByteSize()常量 遗留ByteSize()API 因此,它似乎建议您应该使用其中一种
SpaceUsed()
明显比ByteSize()
慢,因为它是使用反射实现的(而不是为ByteSize()
生成的代码实现)与ByteSize()
类似,它的CPU时间与为proto定义的字段数成线性关系
及
ByteSizeLong()
在为proto定义的字段数量上通常是线性的
实际上,我没有看到关于ByteSize()
本身复杂性的描述,只是这样:
int ByteSize()常量
遗留ByteSize()
API
因此,它似乎建议您应该使用其中一种