Anu*_*Anu 9 encoding json go gob
我正在GO中编写一个应用程序,它使用encoding/gob在节点之间通过UDP发送结构和切片.它工作正常,但我注意到encoding/json也有类似的API.搜索并找到此信息(https://golang.org/pkg/encoding/):
gob Package gob管理gobs流 - 在编码器(发送器)和解码器(接收器)之间交换的二进制值.
json包json实现了RFC 4627中定义的JSON编码和解码.
有人可以向我解释一个人是否比另一个人更有效率,并且一般比较何时选择什么?另外如果我需要与非golang应用程序接口,我想json会更受欢迎?
How*_*owl 13
在Go程序之间进行通信时,Gob更受欢迎.但是,gob目前仅支持Go,以及C,因此只有在您确定没有用任何其他编程语言编写的程序将尝试解码值时才使用它.
说到性能,至少在我的机器上,Gob远远超过了JSON.测试文件(放在GOPATH下的文件夹中)
$ go test -bench=.
testing: warning: no tests to run
BenchmarkGobEncoding-4 1000000 1172 ns/op
BenchmarkJSONEncoding-4 500000 2322 ns/op
BenchmarkGobDecoding-4 5000000 486 ns/op
BenchmarkJSONDecoding-4 500000 3228 ns/op
PASS
ok testencoding 6.814s
Run Code Online (Sandbox Code Playgroud)
包编码/ gob基本上是Go特定的,并且不能与其他语言一起使用,但它非常有效(快速并生成小数据)并且可以正确地编组和解组更多的数据结构.通过JSON,通常可以更轻松地与其他工具连接.