mirror of
				https://github.com/optim-enterprises-bv/kubernetes.git
				synced 2025-11-04 04:08:16 +00:00 
			
		
		
		
	Switch from json-iterator to utiljson
This commit is contained in:
		@@ -26,7 +26,6 @@ import (
 | 
			
		||||
	"testing"
 | 
			
		||||
 | 
			
		||||
	"github.com/google/go-cmp/cmp"
 | 
			
		||||
	jsoniter "github.com/json-iterator/go"
 | 
			
		||||
 | 
			
		||||
	appsv1 "k8s.io/api/apps/v1"
 | 
			
		||||
	v1 "k8s.io/api/core/v1"
 | 
			
		||||
@@ -38,7 +37,6 @@ import (
 | 
			
		||||
	"k8s.io/apimachinery/pkg/conversion"
 | 
			
		||||
	"k8s.io/apimachinery/pkg/runtime"
 | 
			
		||||
	"k8s.io/apimachinery/pkg/runtime/schema"
 | 
			
		||||
	"k8s.io/apimachinery/pkg/runtime/serializer/json"
 | 
			
		||||
	"k8s.io/apimachinery/pkg/runtime/serializer/streaming"
 | 
			
		||||
	"k8s.io/apimachinery/pkg/util/sets"
 | 
			
		||||
	"k8s.io/apimachinery/pkg/watch"
 | 
			
		||||
@@ -589,59 +587,6 @@ func BenchmarkDecodeIntoJSON(b *testing.B) {
 | 
			
		||||
	b.StopTimer()
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// BenchmarkDecodeIntoJSONCodecGenConfigFast provides a baseline
 | 
			
		||||
// for JSON decode performance with jsoniter.ConfigFast
 | 
			
		||||
func BenchmarkDecodeIntoJSONCodecGenConfigFast(b *testing.B) {
 | 
			
		||||
	kcodec := legacyscheme.Codecs.LegacyCodec(v1.SchemeGroupVersion)
 | 
			
		||||
	items := benchmarkItems(b)
 | 
			
		||||
	width := len(items)
 | 
			
		||||
	encoded := make([][]byte, width)
 | 
			
		||||
	for i := range items {
 | 
			
		||||
		data, err := runtime.Encode(kcodec, &items[i])
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			b.Fatal(err)
 | 
			
		||||
		}
 | 
			
		||||
		encoded[i] = data
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	b.ResetTimer()
 | 
			
		||||
	for i := 0; i < b.N; i++ {
 | 
			
		||||
		obj := v1.Pod{}
 | 
			
		||||
		if err := jsoniter.ConfigFastest.Unmarshal(encoded[i%width], &obj); err != nil {
 | 
			
		||||
			b.Fatal(err)
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	b.StopTimer()
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// BenchmarkDecodeIntoJSONCodecGenConfigCompatibleWithStandardLibrary provides a
 | 
			
		||||
// baseline for JSON decode performance with
 | 
			
		||||
// jsoniter.ConfigCompatibleWithStandardLibrary, but with case sensitivity set
 | 
			
		||||
// to true
 | 
			
		||||
func BenchmarkDecodeIntoJSONCodecGenConfigCompatibleWithStandardLibrary(b *testing.B) {
 | 
			
		||||
	kcodec := legacyscheme.Codecs.LegacyCodec(v1.SchemeGroupVersion)
 | 
			
		||||
	items := benchmarkItems(b)
 | 
			
		||||
	width := len(items)
 | 
			
		||||
	encoded := make([][]byte, width)
 | 
			
		||||
	for i := range items {
 | 
			
		||||
		data, err := runtime.Encode(kcodec, &items[i])
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			b.Fatal(err)
 | 
			
		||||
		}
 | 
			
		||||
		encoded[i] = data
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	b.ResetTimer()
 | 
			
		||||
	iter := json.CaseSensitiveJSONIterator()
 | 
			
		||||
	for i := 0; i < b.N; i++ {
 | 
			
		||||
		obj := v1.Pod{}
 | 
			
		||||
		if err := iter.Unmarshal(encoded[i%width], &obj); err != nil {
 | 
			
		||||
			b.Fatal(err)
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	b.StopTimer()
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// BenchmarkEncodeYAMLMarshal provides a baseline for regular YAML encode performance
 | 
			
		||||
func BenchmarkEncodeYAMLMarshal(b *testing.B) {
 | 
			
		||||
	items := benchmarkItems(b)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user