gpt4 book ai didi

json - encoding/gob 和 encoding/json 的区别

转载 作者:IT王子 更新时间:2023-10-29 01:06:54 28 4
gpt4 key购买 nike

我正在用 Go 编写一个应用程序,它使用 encoding/gob 在节点之间通过 UDP 发送结构和 slice 。它工作正常,但我注意到 encoding/json 也有类似的 API。搜索并找到此信息(https://golang.org/pkg/encoding/):

gob Package gob manages streams of gobs - binary values exchanged between an Encoder (transmitter) and a Decoder (receiver).
json Package json implements encoding and decoding of JSON as defined in RFC 4627.

有人可以向我解释一个是否比另一个更有效,并且通常比较什么时候选择什么?另外,如果我需要与非 Go 应用程序交互,我想 json 会是首选?

最佳答案

在 Go 程序之间进行通信时,Gob 更受欢迎。然而,gob 目前仅在 Go 中受支持,嗯,C ,所以只有当您确定没有任何其他编程语言编写的程序会尝试解码这些值时才使用它。

在性能方面,至少在我的机器上,Gob 远远优于 JSON。 Test file (在你的 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

关于json - encoding/gob 和 encoding/json 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41179453/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com