forked from mirror/go-json
Add benchmark for map[string]interface{}
This commit is contained in:
parent
1258224a26
commit
9a1bd6e7ab
|
@ -472,3 +472,68 @@ func Benchmark_Encode_LargeStructCached_GoJsonNoEscape(b *testing.B) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func benchMapValue() map[string]interface{} {
|
||||||
|
return map[string]interface{}{
|
||||||
|
"a": 1,
|
||||||
|
"b": 2.1,
|
||||||
|
"c": "hello",
|
||||||
|
"d": struct {
|
||||||
|
V int
|
||||||
|
}{
|
||||||
|
V: 1,
|
||||||
|
},
|
||||||
|
"e": true,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func Benchmark_Encode_MapInterface_EncodingJson(b *testing.B) {
|
||||||
|
v := benchMapValue()
|
||||||
|
b.ReportAllocs()
|
||||||
|
for i := 0; i < b.N; i++ {
|
||||||
|
if _, err := json.Marshal(v); err != nil {
|
||||||
|
b.Fatal(err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func Benchmark_Encode_MapInterface_JsonIter(b *testing.B) {
|
||||||
|
v := benchMapValue()
|
||||||
|
var json = jsoniter.ConfigCompatibleWithStandardLibrary
|
||||||
|
b.ReportAllocs()
|
||||||
|
for i := 0; i < b.N; i++ {
|
||||||
|
if _, err := json.Marshal(v); err != nil {
|
||||||
|
b.Fatal(err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func Benchmark_Encode_MapInterface_Jettison(b *testing.B) {
|
||||||
|
v := benchMapValue()
|
||||||
|
b.ReportAllocs()
|
||||||
|
for i := 0; i < b.N; i++ {
|
||||||
|
if _, err := jettison.Marshal(v); err != nil {
|
||||||
|
b.Fatal(err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func Benchmark_Encode_MapInterface_SegmentioJson(b *testing.B) {
|
||||||
|
v := benchMapValue()
|
||||||
|
b.ReportAllocs()
|
||||||
|
for i := 0; i < b.N; i++ {
|
||||||
|
if _, err := segmentiojson.Marshal(v); err != nil {
|
||||||
|
b.Fatal(err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func Benchmark_Encode_MapInterface_GoJson(b *testing.B) {
|
||||||
|
v := benchMapValue()
|
||||||
|
b.ReportAllocs()
|
||||||
|
for i := 0; i < b.N; i++ {
|
||||||
|
if _, err := gojson.Marshal(v); err != nil {
|
||||||
|
b.Fatal(err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue