mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-22 19:31:44 +00:00
Merge pull request #99153 from mborsz/gzip-flag
Add BenchmarkSerializeObject* benchmarks
This commit is contained in:
commit
6cd79423bd
@ -366,6 +366,45 @@ func TestSerializeObject(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func benchmarkSerializeObject(b *testing.B, size int) {
|
||||||
|
largePayload := bytes.Repeat([]byte("0123456789abcdef"), size/16+1)
|
||||||
|
req := &http.Request{
|
||||||
|
Header: http.Header{
|
||||||
|
"Accept-Encoding": []string{"gzip"},
|
||||||
|
},
|
||||||
|
URL: &url.URL{Path: "/path"},
|
||||||
|
}
|
||||||
|
defer featuregatetesting.SetFeatureGateDuringTest(b, utilfeature.DefaultFeatureGate, features.APIResponseCompression, true)()
|
||||||
|
|
||||||
|
encoder := &fakeEncoder{
|
||||||
|
buf: largePayload,
|
||||||
|
}
|
||||||
|
|
||||||
|
b.ResetTimer()
|
||||||
|
for i := 0; i < b.N; i++ {
|
||||||
|
recorder := httptest.NewRecorder()
|
||||||
|
SerializeObject("application/json", encoder, recorder, req, http.StatusOK, nil /* object */)
|
||||||
|
result := recorder.Result()
|
||||||
|
if result.StatusCode != http.StatusOK {
|
||||||
|
b.Fatalf("incorrect status code: got %v; want: %v", result.StatusCode, http.StatusOK)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func BenchmarkSerializeObject10KB(b *testing.B) {
|
||||||
|
benchmarkSerializeObject(b, 10*1024)
|
||||||
|
}
|
||||||
|
|
||||||
|
func BenchmarkSerializeObject10MB(b *testing.B) {
|
||||||
|
benchmarkSerializeObject(b, 10*1024*1024)
|
||||||
|
}
|
||||||
|
func BenchmarkSerializeObject100MB(b *testing.B) {
|
||||||
|
benchmarkSerializeObject(b, 100*1024*1024)
|
||||||
|
}
|
||||||
|
func BenchmarkSerializeObject1GB(b *testing.B) {
|
||||||
|
benchmarkSerializeObject(b, 1024*1024*1024)
|
||||||
|
}
|
||||||
|
|
||||||
type fakeResponseRecorder struct {
|
type fakeResponseRecorder struct {
|
||||||
*httptest.ResponseRecorder
|
*httptest.ResponseRecorder
|
||||||
fe *fakeEncoder
|
fe *fakeEncoder
|
||||||
|
Loading…
Reference in New Issue
Block a user