Tag: 协议缓冲区

Google Protocol Buffers和HTTP

我正在使用gSoap将遗留的C ++系统重构为SOA。 我们有一些性能问题(非常大的XML),所以我的领导让我看看协议缓冲区。 我做了,看起来很酷(我们需要C ++和Java支持)。 然而,协议缓冲区只是用于序列化的解决scheme,现在我需要将它发送到Java前端。 我应该从C ++和Java的angular度来使用HTTP(只是内部networking)发送这些序列化的东西? PS。 另一个人试图加快我们的gSoap解决scheme,我只对协议缓冲区感兴趣。

协议缓冲区有多快?

协议缓冲区的.NET会轻量/比Remoting(SerializationFormat.Binary)更快? 在语言/框架方面是否会有一stream的支持? 即它处理透明像Remoting / WebServices?

生成Protobuf文档?

有谁知道使用.proto源文件生成Google Protobuf文档的好工具吗?

如何将gRPC定义的API带到Web浏览器

我们要为我们的gRPC-microservices构build一个Javascript / HTML gui。 由于浏览器端不支持gRPC,所以我们考虑使用web-sockets连接到一个node.js服务器,它通过grpc调用目标服务。 我们很难find一个优雅的解决scheme来做到这一点。 特别是,因为我们使用gRPCstream来推动我们的微服务之间的事件。 看来我们需要第二个RPC系统,只是为了在前端和node.js服务器之间进行通信。 这似乎是大量的开销和额外的代码,必须维护。 有没有人有经验做这样的事情或有一个想法如何可以解决?

protobuf文本格式是什么样的?

Google协议缓冲区不仅可以以二进制格式进行序列化 ,还可以作为文本序列化 。 但是,我不能轻易find这样的文本的例子; 它会是什么样子? 预期的答案:涵盖protobuf IDL / proto文件所允许的所有function的示例,包括文本forms的示例protobuf数据包。

如何让Eclipse解决用Maven 2生成的类?

我正在使用Google协议缓冲区为我的项目生成一些Java类。 使用Maven 2及其“antrun”插件,这些类是在编译之前新生成的,输出到target / generated-sources并在构build期间放在classpath中。 所以从POM构build项目是没有问题的。 但是,Eclipse不知道如何parsing生成的类,因为它在开发过程中似乎不在IDE的类path中。 我正在使用m2eclipse,并为它pipe理依赖关系,所以我期望Maven能够处理这个问题。 我如何获得生成的代码的IDE支持(代码完成等)?

节俭vs协议缓冲区

我已经使用PB了一段时间了,但是,Thrift一直在我的脑海里。 节俭的主要优点,正如我所看到的那样: 本机集合(即vector,集合等)与PB重复提供类似的function,但不太相似(除非您深入到文档所述的“不应该在大多数情况下需要”的RepeatedField,否则没有迭代器)。 提供了一个体面的RPC实现,而不是只是挂钩插入自己的。 更多官方支持的语言(PB提供对Java,C ++,Python的“官方”支持) 节俭的缺点: RPC的实现意味着我不能在我自己的(例如)encryption/身份validation层顶部插入。 Windows支持似乎不是很好。 PB似乎有,如果不是更好,更可访问的文件。 中性: Windows上的.lib / .dll的大小(Thrift)。 在Windows上大尺寸的.lib(PB,但它确实提供了一个明显更小的–lite)。 速度明智,他们似乎都是相似的。 我还没有准备好冒险,转而使用Thrift,任何人都可以为我提供更多的优点/缺点,或者有其他原因。 谢谢!

将协议缓冲区整合到Maven2构build中

我在一个现有的,相当香草的Maven 2项目中使用Protocol Buffers进行实验。 目前,我每次需要更新生成的源代码时,都会调用一个shell脚本。 这显然是一个麻烦,因为我希望在每次构build之前自动生成源代码。 希望没有诉诸可耻的hackery。 所以,我的问题是双重的: 远景:有没有一个“协议缓冲区插件”为Maven 2可以实现上述以automagic方式? 谷歌代码上有一个分支,他的作者似乎在实现这样一个插件方面做了一些尝试。 不幸的是,它没有通过代码审查或合并到protobuf主干。 该插件的状态是未知的。 可能更现实的是:缺less一个实际的插件,我怎么可以从我的Maven 2构build调用protoc ? 我想我可以将现有的shell脚本连接到antrun调用或类似的东西。 个人经验是最感激的。

高性能的序列化:Java vs Google Protocol Buffers vs …?

对于一些caching,我正在考虑为即将到来的项目做些什么,我一直在考虑Java序列化。 也就是说,是否应该使用? 现在我已经写了自定义序列化和反序列化(Externalizable)在过去几年的各种原因。 现在互操作性已经成为一个更大的问题,我可以预见需要与.Net应用程序交互,所以我想到了使用平台无关的解决scheme。 有没有人有高性能使用GPB的经验? 它如何在速度和效率方面与Java的本地串行化进行比较? 或者,还有其他的scheme值得考虑吗?

TensorFlow从文件中保存/加载graphics

从目前为止,我们已经有几种不同的方法将TensorFlow图转储到一个文件中,然后将其加载到另一个程序中,但是我一直无法find有关它们工作原理的明确示例/信息。 我已经知道的是这样的: 使用tf.train.Saver()将模型的variables保存到检查点文件(.ckpt tf.train.Saver() ,稍后恢复( 源文件 ) 将模型保存到.pb文件中,并使用tf.train.write_graph()和tf.import_graph_def() ( source )将其加载回来。 从.pb文件加载模型,重新训练,并使用Bazel( 源代码 )将其转储到新的.pb文件中 冻结graphics以保存graphics和权重( 来源 ) 使用as_graph_def()保存模型,对于权重/variables,将它们映射到常量( 源 ) 但是,我还没有能够澄清这些不同方法的几个问题: 关于检查点文件,他们是否只保存模型的训练重量? 检查点文件可以加载到一个新的程序,并用于运行模型,或者他们只是作为方式来保存模型中的权重在某个时间/阶段? 关于tf.train.write_graph() ,还保存了权重/variables吗? 关于Bazel,它只能保存到/从.pb文件加载再培训? 有一个简单的Bazel命令只是将图转储到.pb中吗? 关于冻结,可以使用tf.import_graph_def()来加载冻结图吗? TensorFlow的Android演示从.pb文件加载到Google的Inception模型中。 如果我想replace自己的.pb文件,我该如何去做呢? 我需要更改任何本机代码/方法吗? 一般来说,所有这些方法之间究竟有什么区别呢? 或者更广泛地说, as_graph_def() ckpt/.pb有什么区别? 总之,我正在寻找的是一种方法来保存一个graphics(如,各种操作等)及其权重/variables到一个文件,然后可以用来加载graphics和权重到另一个程序,供使用(不一定是继续/再培训)。 有关这个主题的文档不是很简单,所以任何答案/信息将不胜感激。