MCPcopy
hub / github.com/kubernetes-sigs/controller-runtime / BenchmarkMergeFrom

Function BenchmarkMergeFrom

pkg/client/patch_test.go:31–99  ·  view source on GitHub ↗
(b *testing.B)

Source from the content-addressed store, hash-verified

29)
30
31func BenchmarkMergeFrom(b *testing.B) {
32 cm1 := &corev1.ConfigMap{}
33 cm1.SetGroupVersionKind(corev1.SchemeGroupVersion.WithKind("ConfigMap"))
34 cm1.ResourceVersion = "anything"
35
36 cm2 := cm1.DeepCopy()
37 cm2.Data = map[string]string{"key": "value"}
38
39 sts1 := &appsv1.StatefulSet{}
40 sts1.SetGroupVersionKind(appsv1.SchemeGroupVersion.WithKind("StatefulSet"))
41 sts1.ResourceVersion = "somesuch"
42
43 sts2 := sts1.DeepCopy()
44 sts2.Spec.Template.Spec.Containers = []corev1.Container{{
45 Resources: corev1.ResourceRequirements{
46 Requests: map[corev1.ResourceName]resource.Quantity{
47 corev1.ResourceCPU: resource.MustParse("1m"),
48 corev1.ResourceMemory: resource.MustParse("1M"),
49 },
50 },
51 ReadinessProbe: &corev1.Probe{
52 ProbeHandler: corev1.ProbeHandler{
53 HTTPGet: &corev1.HTTPGetAction{},
54 },
55 },
56 Lifecycle: &corev1.Lifecycle{
57 PreStop: &corev1.LifecycleHandler{
58 HTTPGet: &corev1.HTTPGetAction{},
59 },
60 },
61 SecurityContext: &corev1.SecurityContext{},
62 }}
63
64 b.Run("NoOptions", func(b *testing.B) {
65 cmPatch := MergeFrom(cm1)
66 if _, err := cmPatch.Data(cm2); err != nil {
67 b.Fatalf("expected no error, got %v", err)
68 }
69
70 stsPatch := MergeFrom(sts1)
71 if _, err := stsPatch.Data(sts2); err != nil {
72 b.Fatalf("expected no error, got %v", err)
73 }
74
75 b.ResetTimer()
76 for i := 0; i < b.N; i++ {
77 _, _ = cmPatch.Data(cm2)
78 _, _ = stsPatch.Data(sts2)
79 }
80 })
81
82 b.Run("WithOptimisticLock", func(b *testing.B) {
83 cmPatch := MergeFromWithOptions(cm1, MergeFromWithOptimisticLock{})
84 if _, err := cmPatch.Data(cm2); err != nil {
85 b.Fatalf("expected no error, got %v", err)
86 }
87
88 stsPatch := MergeFromWithOptions(sts1, MergeFromWithOptimisticLock{})

Callers

nothing calls this directly

Calls 6

MergeFromFunction · 0.85
MergeFromWithOptionsFunction · 0.85
DataMethod · 0.65
SetGroupVersionKindMethod · 0.45
DeepCopyMethod · 0.45
RunMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…