【发布时间】:2015-02-08 14:56:14
【问题描述】:
我可以在运行时使用 FileDescriptorProto 动态创建架构 (Descriptors.Descriptor),还可以使用 DynamicMessage 序列化和反序列化消息。
但是DynamicMessage 的性能不够好,因为它构造消息的方式。我想知道是否可以在运行时编译模式并在反序列化消息时使用它以获得更好的性能。
如果协议缓冲区没有提供在运行时编译模式的方法,那么如果可以将 Descriptors.Descriptor 转换为临时 .proto 文件,那么我可以尝试通过调用我的 protoc 命令来生成类程序并使用 Class.forName API 将它们加载到程序中。
【问题讨论】:
-
你能分享一个例子吗?或工作代码,您可以在运行时使用 FileDescriptor 动态创建模式。我面临着和你类似的情况。我们有一个代表整个消息类的字符串(通常包含在 .proto 文件中),我想生成一个类,我可以使用它来读取使用上述消息类序列化的消息。
-
我也遇到了类似的问题,想知道你最终得到了什么解决方案?
标签: java protocol-buffers java-compiler-api