我想知道它的优点和缺点
我想为两个应用程序实现一个通用框架,一个在Perl中,另一个在Java中.因此,想要创建可以由两种技术使用的公共服务,即Perl和Java.
两者都是网络应用程序.
请与我分享您对此的宝贵意见和建议.我在谷歌上看过很多链接,但都有不同意见.
我最近使用gRPC
与proto3
,我已经注意到,required
并optional
在新的语法已被删除.
有人会解释为什么在proto3中删除了必需/可选项?这样的约束似乎对于使定义具有鲁棒性是必要的.
语法proto2:
message SearchRequest {
required string query = 1;
optional int32 page_number = 2;
optional int32 result_per_page = 3;
}
Run Code Online (Sandbox Code Playgroud)
语法proto3:
syntax = "proto3";
message SearchRequest {
string query = 1;
int32 page_number = 2;
int32 result_per_page = 3;
}
Run Code Online (Sandbox Code Playgroud) 所有这些都提供了二进制序列化,RPC框架和IDL.我对它们与特性(性能,易用性,编程语言支持)之间的关键差异感兴趣.
如果您了解任何其他类似技术,请在答案中提及.
两者都是序列化库,由Google开发人员开发.他们之间有什么大不同吗?将代码从协议缓冲区转移到FlatBuffers是一项艰苦的工作吗?
我想使用终端命令行在mac上安装旧版本的Google Protocol Buffers(protobuf-2.4.1).我尝试过brew install protobuf
,但已安装最新版本2.5.0.是否可以从终端安装旧版本.
谢谢
proto3中的rpc语法是否允许空请求或响应?
例如,我想要相当于以下内容:
rpc Logout;
rpc Status returns (Status);
rpc Log (LogData);
Run Code Online (Sandbox Code Playgroud)
或者我应该只创建一个null类型?
message Null {};
rpc Logout (Null) returns (Null);
rpc Status (Null) returns (Status);
rpc Log (LogData) returns (Null);
Run Code Online (Sandbox Code Playgroud) 从我到目前为止收集的内容来看,有几种不同的方法可以将TensorFlow图转储到文件中,然后将其加载到另一个程序中,但我无法找到有关它们如何工作的明确示例/信息.我已经知道的是:
tf.train.Saver()
然后将其恢复(源代码)tf.train.write_graph()
和tf.import_graph_def()
(源)加载回来as_graph_def()
保存模型,并为权重/变量,它们映射到常数(源)但是,我无法澄清有关这些不同方法的几个问题:
tf.train.write_graph()
,是否也保存了权重/变量?tf.import_graph_def()
吗?as_graph_def()
keeppt/.pb有什么区别?简而言之,我正在寻找的方法是将图形(如,各种操作等)及其权重/变量保存到文件中,然后可以将其用于将图形和权重加载到另一个程序中,使用(不一定继续/再培训).
关于这个主题的文档不是很简单,所以任何答案/信息将不胜感激.
有没有人有关于协议缓冲区与BSON(二进制JSON)或一般JSON的性能特征的任何信息?
这些似乎是用于HTTP的良好二进制协议.我只是想知道从长远来看哪个C#环境会更好.
这是我在BSON和Protocol Buffers上阅读的一些信息.
在JavaScript中使用Google Protocol Buffers是一个不错的选择还是使用JSON更好?
此外,如果有人可以给我一个关于JavaScript中的Protocol Buffers实现的简单示例.因为谷歌的网站我觉得它很差.
protocol-buffers ×10
grpc ×2
json ×2
thrift ×2
asn.1 ×1
avro ×1
bson ×1
c# ×1
comparison ×1
flatbuffers ×1
homebrew ×1
javascript ×1
proto3 ×1
python ×1
tensorflow ×1
xml ×1