Merge pull request #87896 from apelisse/fieldmanager-benchmark-updatetwice
Add UpdateTwice and UpdateApply benchmarks for fieldmanager Kubernetes-commit: 87f27638afe7d677dc229a6acf1ea4500d184aef
This commit is contained in:
commit
5cb9357550
|
|
@ -596,7 +596,7 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go",
|
"ImportPath": "k8s.io/client-go",
|
||||||
"Rev": "cf84c08bad11"
|
"Rev": "5be5d5753fd2"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/component-base",
|
"ImportPath": "k8s.io/component-base",
|
||||||
|
|
|
||||||
4
go.mod
4
go.mod
|
|
@ -46,7 +46,7 @@ require (
|
||||||
gotest.tools v2.2.0+incompatible // indirect
|
gotest.tools v2.2.0+incompatible // indirect
|
||||||
k8s.io/api v0.0.0-20200207025841-85a41f27a10c
|
k8s.io/api v0.0.0-20200207025841-85a41f27a10c
|
||||||
k8s.io/apimachinery v0.0.0-20200207025655-52a338251bb2
|
k8s.io/apimachinery v0.0.0-20200207025655-52a338251bb2
|
||||||
k8s.io/client-go v0.0.0-20200207110052-cf84c08bad11
|
k8s.io/client-go v0.0.0-20200207150107-5be5d5753fd2
|
||||||
k8s.io/component-base v0.0.0-20200207030544-616550b070ba
|
k8s.io/component-base v0.0.0-20200207030544-616550b070ba
|
||||||
k8s.io/klog v1.0.0
|
k8s.io/klog v1.0.0
|
||||||
k8s.io/kube-openapi v0.0.0-20200121204235-bf4fb3bd569c
|
k8s.io/kube-openapi v0.0.0-20200121204235-bf4fb3bd569c
|
||||||
|
|
@ -60,6 +60,6 @@ replace (
|
||||||
golang.org/x/tools => golang.org/x/tools v0.0.0-20190821162956-65e3620a7ae7 // pinned to release-branch.go1.13
|
golang.org/x/tools => golang.org/x/tools v0.0.0-20190821162956-65e3620a7ae7 // pinned to release-branch.go1.13
|
||||||
k8s.io/api => k8s.io/api v0.0.0-20200207025841-85a41f27a10c
|
k8s.io/api => k8s.io/api v0.0.0-20200207025841-85a41f27a10c
|
||||||
k8s.io/apimachinery => k8s.io/apimachinery v0.0.0-20200207025655-52a338251bb2
|
k8s.io/apimachinery => k8s.io/apimachinery v0.0.0-20200207025655-52a338251bb2
|
||||||
k8s.io/client-go => k8s.io/client-go v0.0.0-20200207110052-cf84c08bad11
|
k8s.io/client-go => k8s.io/client-go v0.0.0-20200207150107-5be5d5753fd2
|
||||||
k8s.io/component-base => k8s.io/component-base v0.0.0-20200207030544-616550b070ba
|
k8s.io/component-base => k8s.io/component-base v0.0.0-20200207030544-616550b070ba
|
||||||
)
|
)
|
||||||
|
|
|
||||||
2
go.sum
2
go.sum
|
|
@ -363,7 +363,7 @@ honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWh
|
||||||
honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
|
honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
|
||||||
k8s.io/api v0.0.0-20200207025841-85a41f27a10c/go.mod h1:SA5EjO7X3UBpRgCFnqrgyCg0rXvBmN8QpNZ4Bvmv9js=
|
k8s.io/api v0.0.0-20200207025841-85a41f27a10c/go.mod h1:SA5EjO7X3UBpRgCFnqrgyCg0rXvBmN8QpNZ4Bvmv9js=
|
||||||
k8s.io/apimachinery v0.0.0-20200207025655-52a338251bb2/go.mod h1:4JiEu5qfVX4iOPJG4zxNOGJ0HamEJ5OmJHxtHMChmZo=
|
k8s.io/apimachinery v0.0.0-20200207025655-52a338251bb2/go.mod h1:4JiEu5qfVX4iOPJG4zxNOGJ0HamEJ5OmJHxtHMChmZo=
|
||||||
k8s.io/client-go v0.0.0-20200207110052-cf84c08bad11/go.mod h1:ourVHU91vVd0R4YiJhW1FNlt3K+HtokZ5ImtcAbqVh4=
|
k8s.io/client-go v0.0.0-20200207150107-5be5d5753fd2/go.mod h1:ourVHU91vVd0R4YiJhW1FNlt3K+HtokZ5ImtcAbqVh4=
|
||||||
k8s.io/component-base v0.0.0-20200207030544-616550b070ba/go.mod h1:xqOLjWJL1P+sXGSeMoLVvN0UM/adtUwVUp/mwh5H518=
|
k8s.io/component-base v0.0.0-20200207030544-616550b070ba/go.mod h1:xqOLjWJL1P+sXGSeMoLVvN0UM/adtUwVUp/mwh5H518=
|
||||||
k8s.io/gengo v0.0.0-20190128074634-0689ccc1d7d6/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0=
|
k8s.io/gengo v0.0.0-20190128074634-0689ccc1d7d6/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0=
|
||||||
k8s.io/klog v0.0.0-20181102134211-b9b56d5dfc92/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk=
|
k8s.io/klog v0.0.0-20181102134211-b9b56d5dfc92/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk=
|
||||||
|
|
|
||||||
|
|
@ -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()
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue