ByteSize() 方法的复杂性
Complexity of ByteSize() method
C
++协议缓冲区的方法ByteSize()
的复杂性是多少?换句话说,大小是在我设置参数时计算的,并在内部存储在协议缓冲区中,还是在我调用ByteSize()
时完成的计算。如果是后者,这对于大型协议缓冲区对象来说可能非常昂贵,对吗?
答案似乎从其他函数的文档中暗示: https://developers.google.com/protocol-buffers/docs/reference/cpp/google.protobuf.message
SpaceUsed()
明显比ByteSize()
慢,因为它是使用反射实现的(而不是为ByteSize()
生成的代码实现(。像ByteSize()
一样,它的CPU时间在为原型定义的字段数量上是线性的。
和
ByteSizeLong()
为原型定义的字段数通常是线性的。
不过,我实际上并没有看到对ByteSize()
本身复杂性的描述,只是这样:
int ByteSize() const
旧版
ByteSize()
API。
因此,它似乎建议您使用其他方法之一。
相关文章:
- 为不同配置设置MSVC_RUNTIME_LIBRARY的正确方法是什么
- 通过方法访问结构
- 最小硬币更换问题(自上而下方法)
- C++为构建时间获取QDateTime的可靠方法
- 在C#中处理C++指针而不使用unsafe的最佳方法
- 处理多个异常集合的C++方法
- 如果C++类在类方法中具有动态分配,但没有构造函数/析构函数或任何非静态成员,那么它仍然是POD类型吗
- 有什么方法可以遍历结构吗
- 当类在C++中定义时,有什么方法可以"register"类吗?
- 在C++中,将大的无符号浮点数四舍五入为整数的最佳方法是什么
- 实现无开销push_back的最佳方法是什么
- 使用std::函数映射对象方法
- 有符号的int和int-有没有一种方法可以在C++中区分它们
- C++从另一个类访问公共静态向量的正确方法是什么
- C++优先级队列,按对象的唯一指针的特定方法升序排列
- ByteSize() 方法的复杂性
- 此插入方法的时间和空间复杂性
- 方法向量的新/分配的复杂性::p ush_back
- spoj ARRAYSUB:O(n)复杂性方法
- 从高效方法中删除指定的字符(时间和空间复杂性)