为什么 ProtocolBuffers 生成描述符?

Why ProtocolBuffers generate descriptor ?

协议缓冲区生成代码来解码和编码消息。

为什么它也生成描述符代码;该代码似乎在编码和解码消息过程中没有用。

描述符还有其他用途吗?

它们对于调试问题很有用:可以打印字段及其值,例如如果因此导致解析数据失败,则可以自动打印缺少必填字段。

如果您在 .proto 文件中设置以下选项,则不会生成描述符。

option optimize_for = LITE_RUNTIME;