Merge pull request #87896 from apelisse/fieldmanager-benchmark-updatetwice

Add UpdateTwice and UpdateApply benchmarks for fieldmanager
This commit is contained in:
Kubernetes Prow Robot 2020-02-07 05:57:56 -08:00 committed by GitHub
commit 87f27638af
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -409,13 +409,28 @@ func BenchmarkNewObject(b *testing.B) {
APIVersion: "v1", APIVersion: "v1",
}, },
}) })
appliedObj := &unstructured.Unstructured{Object: map[string]interface{}{}}
if err := yaml.Unmarshal(test.obj, &appliedObj.Object); err != nil {
b.Fatalf("Failed to parse yaml object: %v", err)
}
b.Run("Update", func(b *testing.B) { b.Run("Update", func(b *testing.B) {
b.ReportAllocs() b.ReportAllocs()
b.ResetTimer() b.ResetTimer()
for n := 0; n < b.N; n++ { for n := 0; n < b.N; n++ {
err := f.Update(newObj, "fieldmanager_test") if err := f.Update(newObj, "fieldmanager_test"); err != nil {
if err != nil { b.Fatal(err)
}
f.Reset()
}
})
b.Run("UpdateTwice", func(b *testing.B) {
b.ReportAllocs()
b.ResetTimer()
for n := 0; n < b.N; n++ {
if err := f.Update(newObj, "fieldmanager_test"); err != nil {
b.Fatal(err)
}
if err := f.Update(newObj, "fieldmanager_test_2"); err != nil {
b.Fatal(err) b.Fatal(err)
} }
f.Reset() f.Reset()
@ -425,12 +440,20 @@ func BenchmarkNewObject(b *testing.B) {
b.ReportAllocs() b.ReportAllocs()
b.ResetTimer() b.ResetTimer()
for n := 0; n < b.N; n++ { for n := 0; n < b.N; n++ {
appliedObj := &unstructured.Unstructured{Object: map[string]interface{}{}} if err := f.Apply(appliedObj, "fieldmanager_test", false); err != nil {
if err := yaml.Unmarshal(test.obj, &appliedObj.Object); err != nil { b.Fatal(err)
b.Fatalf("error decoding YAML: %v", err)
} }
err := f.Apply(appliedObj, "fieldmanager_test", false) f.Reset()
if err != nil { }
})
b.Run("UpdateApply", func(b *testing.B) {
b.ReportAllocs()
b.ResetTimer()
for n := 0; n < b.N; n++ {
if err := f.Update(newObj, "fieldmanager_test"); err != nil {
b.Fatal(err)
}
if err := f.Apply(appliedObj, "fieldmanager_test", false); err != nil {
b.Fatal(err) b.Fatal(err)
} }
f.Reset() f.Reset()