Switch from json-iterator to utiljson
This commit is contained in:
@@ -19,12 +19,10 @@ package testing
|
||||
import (
|
||||
"math/rand"
|
||||
"reflect"
|
||||
"sort"
|
||||
"testing"
|
||||
|
||||
"github.com/google/go-cmp/cmp"
|
||||
fuzz "github.com/google/gofuzz"
|
||||
jsoniter "github.com/json-iterator/go"
|
||||
|
||||
v1 "k8s.io/api/core/v1"
|
||||
"k8s.io/apimachinery/pkg/api/apitesting/fuzzer"
|
||||
@@ -260,75 +258,3 @@ func BenchmarkFromUnstructuredViaJSON(b *testing.B) {
|
||||
}
|
||||
b.StopTimer()
|
||||
}
|
||||
|
||||
func BenchmarkToUnstructuredViaJSONIter(b *testing.B) {
|
||||
items := benchmarkItems(b)
|
||||
size := len(items)
|
||||
var keys []string
|
||||
for k := range jsonIterConfig {
|
||||
keys = append(keys, k)
|
||||
}
|
||||
sort.Strings(keys)
|
||||
for _, name := range keys {
|
||||
c := jsonIterConfig[name]
|
||||
b.Run(name, func(b *testing.B) {
|
||||
b.ResetTimer()
|
||||
for i := 0; i < b.N; i++ {
|
||||
data, err := c.Marshal(&items[i%size])
|
||||
if err != nil {
|
||||
b.Fatalf("unexpected error: %v", err)
|
||||
}
|
||||
unstr := map[string]interface{}{}
|
||||
if err := c.Unmarshal(data, &unstr); err != nil {
|
||||
b.Fatalf("unexpected error: %v", err)
|
||||
}
|
||||
}
|
||||
b.StopTimer()
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
var jsonIterConfig = map[string]jsoniter.API{
|
||||
"default": jsoniter.ConfigDefault,
|
||||
"fastest": jsoniter.ConfigFastest,
|
||||
"compat": jsoniter.ConfigCompatibleWithStandardLibrary,
|
||||
}
|
||||
|
||||
func BenchmarkFromUnstructuredViaJSONIter(b *testing.B) {
|
||||
items := benchmarkItems(b)
|
||||
var unstr []map[string]interface{}
|
||||
for i := range items {
|
||||
data, err := jsoniter.Marshal(&items[i])
|
||||
if err != nil {
|
||||
b.Fatalf("unexpected error: %v", err)
|
||||
}
|
||||
item := map[string]interface{}{}
|
||||
if err := json.Unmarshal(data, &item); err != nil {
|
||||
b.Fatalf("unexpected error: %v", err)
|
||||
}
|
||||
unstr = append(unstr, item)
|
||||
}
|
||||
size := len(items)
|
||||
var keys []string
|
||||
for k := range jsonIterConfig {
|
||||
keys = append(keys, k)
|
||||
}
|
||||
sort.Strings(keys)
|
||||
for _, name := range keys {
|
||||
c := jsonIterConfig[name]
|
||||
b.Run(name, func(b *testing.B) {
|
||||
b.ResetTimer()
|
||||
for i := 0; i < b.N; i++ {
|
||||
item, err := c.Marshal(unstr[i%size])
|
||||
if err != nil {
|
||||
b.Fatalf("unexpected error: %v", err)
|
||||
}
|
||||
obj := v1.Pod{}
|
||||
if err := c.Unmarshal(item, &obj); err != nil {
|
||||
b.Fatalf("unexpected error: %v", err)
|
||||
}
|
||||
}
|
||||
b.StopTimer()
|
||||
})
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user