Skip to content

Instantly share code, notes, and snippets.

@jpbetz
Last active January 23, 2025 16:47
Show Gist options
  • Save jpbetz/df3806a5605a174597a3d0d6459125c5 to your computer and use it in GitHub Desktop.
Save jpbetz/df3806a5605a174597a3d0d6459125c5 to your computer and use it in GitHub Desktop.
Benchmarking structured-merge-diff for unsetting fields
goos: linux
goarch: amd64
pkg: sigs.k8s.io/structured-merge-diff/v4/fieldpath
cpu: Intel(R) Core(TM) i7-10610U CPU @ 1.80GHz
│ old.txt │ new.txt │
│ sec/op │ sec/op vs base │
FieldSet/insert-20-8 12.02µ ± ∞ ¹ 11.00µ ± ∞ ¹ ~ (p=1.000 n=1) ²
FieldSet/has-20-8 434.6n ± ∞ ¹ 541.8n ± ∞ ¹ ~ (p=1.000 n=1) ²
FieldSet/serialize-20-8 6.667µ ± ∞ ¹ 8.090µ ± ∞ ¹ ~ (p=1.000 n=1) ²
FieldSet/deserialize-20-8 22.98µ ± ∞ ¹ 21.10µ ± ∞ ¹ ~ (p=1.000 n=1) ²
FieldSet/union-20-8 6.958µ ± ∞ ¹ 7.228µ ± ∞ ¹ ~ (p=1.000 n=1) ²
FieldSet/intersection-20-8 3.291µ ± ∞ ¹ 3.476µ ± ∞ ¹ ~ (p=1.000 n=1) ²
FieldSet/difference-20-8 5.178µ ± ∞ ¹ 5.430µ ± ∞ ¹ ~ (p=1.000 n=1) ²
FieldSet/recursive-difference-20-8 6.063µ ± ∞ ¹ 5.632µ ± ∞ ¹ ~ (p=1.000 n=1) ²
FieldSet/leaves-20-8 3.658µ ± ∞ ¹ 3.637µ ± ∞ ¹ ~ (p=1.000 n=1) ²
FieldSet/insert-50-8 35.67µ ± ∞ ¹ 35.52µ ± ∞ ¹ ~ (p=1.000 n=1) ²
FieldSet/has-50-8 582.1n ± ∞ ¹ 607.7n ± ∞ ¹ ~ (p=1.000 n=1) ²
FieldSet/serialize-50-8 20.75µ ± ∞ ¹ 20.09µ ± ∞ ¹ ~ (p=1.000 n=1) ²
FieldSet/deserialize-50-8 51.44µ ± ∞ ¹ 50.64µ ± ∞ ¹ ~ (p=1.000 n=1) ²
FieldSet/union-50-8 24.26µ ± ∞ ¹ 19.12µ ± ∞ ¹ ~ (p=1.000 n=1) ²
FieldSet/intersection-50-8 8.661µ ± ∞ ¹ 7.628µ ± ∞ ¹ ~ (p=1.000 n=1) ²
FieldSet/difference-50-8 16.33µ ± ∞ ¹ 14.46µ ± ∞ ¹ ~ (p=1.000 n=1) ²
FieldSet/recursive-difference-50-8 16.88µ ± ∞ ¹ 16.09µ ± ∞ ¹ ~ (p=1.000 n=1) ²
FieldSet/leaves-50-8 13.74µ ± ∞ ¹ 14.31µ ± ∞ ¹ ~ (p=1.000 n=1) ²
FieldSet/insert-100-8 118.4µ ± ∞ ¹ 137.5µ ± ∞ ¹ ~ (p=1.000 n=1) ²
FieldSet/has-100-8 922.8n ± ∞ ¹ 1047.0n ± ∞ ¹ ~ (p=1.000 n=1) ²
FieldSet/serialize-100-8 71.35µ ± ∞ ¹ 75.64µ ± ∞ ¹ ~ (p=1.000 n=1) ²
FieldSet/deserialize-100-8 219.8µ ± ∞ ¹ 210.5µ ± ∞ ¹ ~ (p=1.000 n=1) ²
FieldSet/union-100-8 66.09µ ± ∞ ¹ 48.59µ ± ∞ ¹ ~ (p=1.000 n=1) ²
FieldSet/intersection-100-8 20.81µ ± ∞ ¹ 30.30µ ± ∞ ¹ ~ (p=1.000 n=1) ²
FieldSet/difference-100-8 36.62µ ± ∞ ¹ 43.59µ ± ∞ ¹ ~ (p=1.000 n=1) ²
FieldSet/recursive-difference-100-8 39.79µ ± ∞ ¹ 42.62µ ± ∞ ¹ ~ (p=1.000 n=1) ²
FieldSet/leaves-100-8 54.59µ ± ∞ ¹ 48.70µ ± ∞ ¹ ~ (p=1.000 n=1) ²
FieldSet/insert-500-8 660.7µ ± ∞ ¹ 593.0µ ± ∞ ¹ ~ (p=1.000 n=1) ²
FieldSet/has-500-8 1.260µ ± ∞ ¹ 1.109µ ± ∞ ¹ ~ (p=1.000 n=1) ²
FieldSet/serialize-500-8 390.1µ ± ∞ ¹ 408.1µ ± ∞ ¹ ~ (p=1.000 n=1) ²
FieldSet/deserialize-500-8 865.8µ ± ∞ ¹ 802.0µ ± ∞ ¹ ~ (p=1.000 n=1) ²
FieldSet/union-500-8 272.5µ ± ∞ ¹ 244.0µ ± ∞ ¹ ~ (p=1.000 n=1) ²
FieldSet/intersection-500-8 120.5µ ± ∞ ¹ 121.4µ ± ∞ ¹ ~ (p=1.000 n=1) ²
FieldSet/difference-500-8 184.9µ ± ∞ ¹ 188.5µ ± ∞ ¹ ~ (p=1.000 n=1) ²
FieldSet/recursive-difference-500-8 196.2µ ± ∞ ¹ 210.0µ ± ∞ ¹ ~ (p=1.000 n=1) ²
FieldSet/leaves-500-8 283.4µ ± ∞ ¹ 277.1µ ± ∞ ¹ ~ (p=1.000 n=1) ²
FieldSet/insert-1000-8 1.362m ± ∞ ¹ 1.347m ± ∞ ¹ ~ (p=1.000 n=1) ²
FieldSet/has-1000-8 1.395µ ± ∞ ¹ 1.338µ ± ∞ ¹ ~ (p=1.000 n=1) ²
FieldSet/serialize-1000-8 796.9µ ± ∞ ¹ 777.6µ ± ∞ ¹ ~ (p=1.000 n=1) ²
FieldSet/deserialize-1000-8 1.768m ± ∞ ¹ 1.728m ± ∞ ¹ ~ (p=1.000 n=1) ²
FieldSet/union-1000-8 500.2µ ± ∞ ¹ 501.5µ ± ∞ ¹ ~ (p=1.000 n=1) ²
FieldSet/intersection-1000-8 241.1µ ± ∞ ¹ 238.0µ ± ∞ ¹ ~ (p=1.000 n=1) ²
FieldSet/difference-1000-8 386.3µ ± ∞ ¹ 379.4µ ± ∞ ¹ ~ (p=1.000 n=1) ²
FieldSet/recursive-difference-1000-8 460.8µ ± ∞ ¹ 425.0µ ± ∞ ¹ ~ (p=1.000 n=1) ²
FieldSet/leaves-1000-8 658.6µ ± ∞ ¹ 595.2µ ± ∞ ¹ ~ (p=1.000 n=1) ²
geomean 42.76µ 42.45µ -0.73%
¹ need >= 6 samples for confidence interval at level 0.95
² need >= 4 samples to detect a difference at alpha level 0.05
│ old.txt │ new.txt │
│ B/op │ B/op vs base │
FieldSet/insert-20-8 4.697Ki ± ∞ ¹ 4.698Ki ± ∞ ¹ ~ (p=1.000 n=1) ²
FieldSet/has-20-8 96.00 ± ∞ ¹ 96.00 ± ∞ ¹ ~ (p=1.000 n=1) ³
FieldSet/serialize-20-8 1.555Ki ± ∞ ¹ 1.530Ki ± ∞ ¹ ~ (p=1.000 n=1) ²
FieldSet/deserialize-20-8 9.768Ki ± ∞ ¹ 9.767Ki ± ∞ ¹ ~ (p=1.000 n=1) ²
FieldSet/union-20-8 4.250Ki ± ∞ ¹ 4.287Ki ± ∞ ¹ ~ (p=1.000 n=1) ²
FieldSet/intersection-20-8 982.0 ± ∞ ¹ 992.0 ± ∞ ¹ ~ (p=1.000 n=1) ²
FieldSet/difference-20-8 2.611Ki ± ∞ ¹ 2.624Ki ± ∞ ¹ ~ (p=1.000 n=1) ²
FieldSet/recursive-difference-20-8 2.611Ki ± ∞ ¹ 2.623Ki ± ∞ ¹ ~ (p=1.000 n=1) ²
FieldSet/leaves-20-8 2.395Ki ± ∞ ¹ 2.401Ki ± ∞ ¹ ~ (p=1.000 n=1) ²
FieldSet/insert-50-8 15.87Ki ± ∞ ¹ 15.87Ki ± ∞ ¹ ~ (p=1.000 n=1) ²
FieldSet/has-50-8 160.0 ± ∞ ¹ 159.0 ± ∞ ¹ ~ (p=1.000 n=1) ²
FieldSet/serialize-50-8 4.482Ki ± ∞ ¹ 4.466Ki ± ∞ ¹ ~ (p=1.000 n=1) ²
FieldSet/deserialize-50-8 19.98Ki ± ∞ ¹ 19.99Ki ± ∞ ¹ ~ (p=1.000 n=1) ²
FieldSet/union-50-8 10.07Ki ± ∞ ¹ 10.09Ki ± ∞ ¹ ~ (p=1.000 n=1) ²
FieldSet/intersection-50-8 2.009Ki ± ∞ ¹ 2.009Ki ± ∞ ¹ ~ (p=1.000 n=1) ³
FieldSet/difference-50-8 6.333Ki ± ∞ ¹ 6.350Ki ± ∞ ¹ ~ (p=1.000 n=1) ²
FieldSet/recursive-difference-50-8 6.371Ki ± ∞ ¹ 6.374Ki ± ∞ ¹ ~ (p=1.000 n=1) ²
FieldSet/leaves-50-8 6.770Ki ± ∞ ¹ 6.782Ki ± ∞ ¹ ~ (p=1.000 n=1) ²
FieldSet/insert-100-8 58.91Ki ± ∞ ¹ 58.95Ki ± ∞ ¹ ~ (p=1.000 n=1) ²
FieldSet/has-100-8 309.0 ± ∞ ¹ 309.0 ± ∞ ¹ ~ (p=1.000 n=1) ³
FieldSet/serialize-100-8 15.55Ki ± ∞ ¹ 15.69Ki ± ∞ ¹ ~ (p=1.000 n=1) ²
FieldSet/deserialize-100-8 59.18Ki ± ∞ ¹ 59.20Ki ± ∞ ¹ ~ (p=1.000 n=1) ²
FieldSet/union-100-8 25.30Ki ± ∞ ¹ 25.26Ki ± ∞ ¹ ~ (p=1.000 n=1) ²
FieldSet/intersection-100-8 3.942Ki ± ∞ ¹ 3.916Ki ± ∞ ¹ ~ (p=1.000 n=1) ²
FieldSet/difference-100-8 15.40Ki ± ∞ ¹ 15.36Ki ± ∞ ¹ ~ (p=1.000 n=1) ²
FieldSet/recursive-difference-100-8 15.65Ki ± ∞ ¹ 15.61Ki ± ∞ ¹ ~ (p=1.000 n=1) ²
FieldSet/leaves-100-8 26.94Ki ± ∞ ¹ 26.85Ki ± ∞ ¹ ~ (p=1.000 n=1) ²
FieldSet/insert-500-8 306.9Ki ± ∞ ¹ 307.1Ki ± ∞ ¹ ~ (p=1.000 n=1) ²
FieldSet/has-500-8 352.0 ± ∞ ¹ 351.0 ± ∞ ¹ ~ (p=1.000 n=1) ²
FieldSet/serialize-500-8 73.57Ki ± ∞ ¹ 74.61Ki ± ∞ ¹ ~ (p=1.000 n=1) ²
FieldSet/deserialize-500-8 270.1Ki ± ∞ ¹ 270.0Ki ± ∞ ¹ ~ (p=1.000 n=1) ²
FieldSet/union-500-8 116.9Ki ± ∞ ¹ 116.9Ki ± ∞ ¹ ~ (p=1.000 n=1) ²
FieldSet/intersection-500-8 23.25Ki ± ∞ ¹ 23.23Ki ± ∞ ¹ ~ (p=1.000 n=1) ²
FieldSet/difference-500-8 69.92Ki ± ∞ ¹ 69.95Ki ± ∞ ¹ ~ (p=1.000 n=1) ²
FieldSet/recursive-difference-500-8 71.21Ki ± ∞ ¹ 71.28Ki ± ∞ ¹ ~ (p=1.000 n=1) ²
FieldSet/leaves-500-8 135.3Ki ± ∞ ¹ 135.4Ki ± ∞ ¹ ~ (p=1.000 n=1) ²
FieldSet/insert-1000-8 675.1Ki ± ∞ ¹ 675.2Ki ± ∞ ¹ ~ (p=1.000 n=1) ²
FieldSet/has-1000-8 377.0 ± ∞ ¹ 377.0 ± ∞ ¹ ~ (p=1.000 n=1) ³
FieldSet/serialize-1000-8 154.1Ki ± ∞ ¹ 155.3Ki ± ∞ ¹ ~ (p=1.000 n=1) ²
FieldSet/deserialize-1000-8 593.7Ki ± ∞ ¹ 593.2Ki ± ∞ ¹ ~ (p=1.000 n=1) ²
FieldSet/union-1000-8 230.6Ki ± ∞ ¹ 230.4Ki ± ∞ ¹ ~ (p=1.000 n=1) ²
FieldSet/intersection-1000-8 41.85Ki ± ∞ ¹ 42.10Ki ± ∞ ¹ ~ (p=1.000 n=1) ²
FieldSet/difference-1000-8 146.5Ki ± ∞ ¹ 146.3Ki ± ∞ ¹ ~ (p=1.000 n=1) ²
FieldSet/recursive-difference-1000-8 149.2Ki ± ∞ ¹ 149.3Ki ± ∞ ¹ ~ (p=1.000 n=1) ²
FieldSet/leaves-1000-8 300.3Ki ± ∞ ¹ 300.3Ki ± ∞ ¹ ~ (p=1.000 n=1) ²
geomean 14.68Ki 14.69Ki +0.07%
¹ need >= 6 samples for confidence interval at level 0.95
² need >= 4 samples to detect a difference at alpha level 0.05
³ all samples are equal
│ old.txt │ new.txt │
│ allocs/op │ allocs/op vs base │
FieldSet/insert-20-8 78.00 ± ∞ ¹ 78.00 ± ∞ ¹ ~ (p=1.000 n=1) ²
FieldSet/has-20-8 2.000 ± ∞ ¹ 2.000 ± ∞ ¹ ~ (p=1.000 n=1) ²
FieldSet/serialize-20-8 8.000 ± ∞ ¹ 8.000 ± ∞ ¹ ~ (p=1.000 n=1) ²
FieldSet/deserialize-20-8 232.0 ± ∞ ¹ 232.0 ± ∞ ¹ ~ (p=1.000 n=1) ²
FieldSet/union-20-8 53.00 ± ∞ ¹ 54.00 ± ∞ ¹ ~ (p=1.000 n=1) ³
FieldSet/intersection-20-8 29.00 ± ∞ ¹ 30.00 ± ∞ ¹ ~ (p=1.000 n=1) ³
FieldSet/difference-20-8 43.00 ± ∞ ¹ 43.00 ± ∞ ¹ ~ (p=1.000 n=1) ²
FieldSet/recursive-difference-20-8 43.00 ± ∞ ¹ 43.00 ± ∞ ¹ ~ (p=1.000 n=1) ²
FieldSet/leaves-20-8 47.00 ± ∞ ¹ 48.00 ± ∞ ¹ ~ (p=1.000 n=1) ³
FieldSet/insert-50-8 246.0 ± ∞ ¹ 246.0 ± ∞ ¹ ~ (p=1.000 n=1) ²
FieldSet/has-50-8 2.000 ± ∞ ¹ 2.000 ± ∞ ¹ ~ (p=1.000 n=1) ²
FieldSet/serialize-50-8 14.00 ± ∞ ¹ 14.00 ± ∞ ¹ ~ (p=1.000 n=1) ²
FieldSet/deserialize-50-8 660.0 ± ∞ ¹ 659.0 ± ∞ ¹ ~ (p=1.000 n=1) ³
FieldSet/union-50-8 134.0 ± ∞ ¹ 134.0 ± ∞ ¹ ~ (p=1.000 n=1) ²
FieldSet/intersection-50-8 62.00 ± ∞ ¹ 62.00 ± ∞ ¹ ~ (p=1.000 n=1) ²
FieldSet/difference-50-8 101.0 ± ∞ ¹ 101.0 ± ∞ ¹ ~ (p=1.000 n=1) ²
FieldSet/recursive-difference-50-8 103.0 ± ∞ ¹ 103.0 ± ∞ ¹ ~ (p=1.000 n=1) ²
FieldSet/leaves-50-8 150.0 ± ∞ ¹ 150.0 ± ∞ ¹ ~ (p=1.000 n=1) ²
FieldSet/insert-100-8 813.0 ± ∞ ¹ 814.0 ± ∞ ¹ ~ (p=1.000 n=1) ³
FieldSet/has-100-8 3.000 ± ∞ ¹ 3.000 ± ∞ ¹ ~ (p=1.000 n=1) ²
FieldSet/serialize-100-8 39.00 ± ∞ ¹ 39.00 ± ∞ ¹ ~ (p=1.000 n=1) ²
FieldSet/deserialize-100-8 2.304k ± ∞ ¹ 2.306k ± ∞ ¹ ~ (p=1.000 n=1) ³
FieldSet/union-100-8 258.0 ± ∞ ¹ 257.0 ± ∞ ¹ ~ (p=1.000 n=1) ³
FieldSet/intersection-100-8 125.0 ± ∞ ¹ 124.0 ± ∞ ¹ ~ (p=1.000 n=1) ³
FieldSet/difference-100-8 215.0 ± ∞ ¹ 214.0 ± ∞ ¹ ~ (p=1.000 n=1) ³
FieldSet/recursive-difference-100-8 217.0 ± ∞ ¹ 216.0 ± ∞ ¹ ~ (p=1.000 n=1) ³
FieldSet/leaves-100-8 635.0 ± ∞ ¹ 633.0 ± ∞ ¹ ~ (p=1.000 n=1) ³
FieldSet/insert-500-8 4.138k ± ∞ ¹ 4.139k ± ∞ ¹ ~ (p=1.000 n=1) ³
FieldSet/has-500-8 3.000 ± ∞ ¹ 3.000 ± ∞ ¹ ~ (p=1.000 n=1) ²
FieldSet/serialize-500-8 184.0 ± ∞ ¹ 184.0 ± ∞ ¹ ~ (p=1.000 n=1) ²
FieldSet/deserialize-500-8 11.47k ± ∞ ¹ 11.47k ± ∞ ¹ ~ (p=1.000 n=1) ³
FieldSet/union-500-8 1.463k ± ∞ ¹ 1.463k ± ∞ ¹ ~ (p=1.000 n=1) ²
FieldSet/intersection-500-8 737.0 ± ∞ ¹ 737.0 ± ∞ ¹ ~ (p=1.000 n=1) ²
FieldSet/difference-500-8 1.159k ± ∞ ¹ 1.160k ± ∞ ¹ ~ (p=1.000 n=1) ³
FieldSet/recursive-difference-500-8 1.181k ± ∞ ¹ 1.184k ± ∞ ¹ ~ (p=1.000 n=1) ³
FieldSet/leaves-500-8 3.219k ± ∞ ¹ 3.221k ± ∞ ¹ ~ (p=1.000 n=1) ³
FieldSet/insert-1000-8 8.970k ± ∞ ¹ 8.975k ± ∞ ¹ ~ (p=1.000 n=1) ³
FieldSet/has-1000-8 3.000 ± ∞ ¹ 3.000 ± ∞ ¹ ~ (p=1.000 n=1) ²
FieldSet/serialize-1000-8 393.0 ± ∞ ¹ 391.0 ± ∞ ¹ ~ (p=1.000 n=1) ³
FieldSet/deserialize-1000-8 25.01k ± ∞ ¹ 24.99k ± ∞ ¹ ~ (p=1.000 n=1) ³
FieldSet/union-1000-8 2.858k ± ∞ ¹ 2.858k ± ∞ ¹ ~ (p=1.000 n=1) ²
FieldSet/intersection-1000-8 1.322k ± ∞ ¹ 1.327k ± ∞ ¹ ~ (p=1.000 n=1) ³
FieldSet/difference-1000-8 2.251k ± ∞ ¹ 2.233k ± ∞ ¹ ~ (p=1.000 n=1) ³
FieldSet/recursive-difference-1000-8 2.285k ± ∞ ¹ 2.283k ± ∞ ¹ ~ (p=1.000 n=1) ³
FieldSet/leaves-1000-8 7.220k ± ∞ ¹ 7.222k ± ∞ ¹ ~ (p=1.000 n=1) ³
geomean 219.3 219.5 +0.10%
¹ need >= 6 samples for confidence interval at level 0.95
² all samples are equal
³ need >= 4 samples to detect a difference at alpha level 0.05
pkg: sigs.k8s.io/structured-merge-diff/v4/merge
│ old.txt │ new.txt │
│ sec/op │ sec/op vs base │
DeducedSimple-8 79.61µ ± ∞ ¹
DeducedNested-8 159.6µ ± ∞ ¹
DeducedNestedAcrossVersion-8 238.7µ ± ∞ ¹
LeafConflictAcrossVersion-8 106.9µ ± ∞ ¹
MultipleApplierRecursiveRealConversion-8 1.571m ± ∞ ¹ 1.598m ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Pod/Create-8 103.13µ ± ∞ ¹ 89.61µ ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Pod/Apply-8 264.0µ ± ∞ ¹ 243.9µ ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Pod/ApplyTwice-8 640.6µ ± ∞ ¹ 586.3µ ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Pod/ApplyTwiceNoCompare-8 591.9µ ± ∞ ¹ 558.7µ ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Pod/Update-8 242.8µ ± ∞ ¹ 221.1µ ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Pod/UpdateVersion-8 347.6µ ± ∞ ¹ 323.6µ ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Node/Create-8 156.0µ ± ∞ ¹ 143.5µ ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Node/Apply-8 401.1µ ± ∞ ¹ 378.1µ ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Node/ApplyTwice-8 1000.5µ ± ∞ ¹ 940.8µ ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Node/ApplyTwiceNoCompare-8 903.5µ ± ∞ ¹ 907.3µ ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Node/Update-8 403.9µ ± ∞ ¹ 424.4µ ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Node/UpdateVersion-8 660.3µ ± ∞ ¹ 522.6µ ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Endpoints/Create-8 10.947µ ± ∞ ¹ 8.673µ ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Endpoints/Apply-8 24.11µ ± ∞ ¹ 22.11µ ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Endpoints/ApplyTwice-8 3.367m ± ∞ ¹ 2.823m ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Endpoints/ApplyTwiceNoCompare-8 1.541m ± ∞ ¹ 1.333m ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Endpoints/Update-8 1.528m ± ∞ ¹ 1.302m ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Endpoints/UpdateVersion-8 3.070m ± ∞ ¹ 2.571m ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Node100%override/Create-8 154.6µ ± ∞ ¹ 194.5µ ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Node100%override/Apply-8 390.1µ ± ∞ ¹ 378.3µ ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Node100%override/ApplyTwice-8 979.3µ ± ∞ ¹ 915.2µ ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Node100%override/ApplyTwiceNoCompare-8 1220.4µ ± ∞ ¹ 887.5µ ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Node100%override/Update-8 397.1µ ± ∞ ¹ 366.1µ ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Node100%override/UpdateVersion-8 737.6µ ± ∞ ¹ 560.1µ ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Node10%override/Create-8 179.6µ ± ∞ ¹ 151.3µ ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Node10%override/Apply-8 464.1µ ± ∞ ¹ 461.5µ ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Node10%override/ApplyTwice-8 1.182m ± ∞ ¹ 1.009m ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Node10%override/ApplyTwiceNoCompare-8 1055.7µ ± ∞ ¹ 900.9µ ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Node10%override/Update-8 456.5µ ± ∞ ¹ 383.8µ ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Node10%override/UpdateVersion-8 564.7µ ± ∞ ¹ 554.1µ ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Endpoints100%override/Create-8 8.912µ ± ∞ ¹ 9.070µ ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Endpoints100%override/Apply-8 22.08µ ± ∞ ¹ 22.24µ ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Endpoints100%override/ApplyTwice-8 2.634m ± ∞ ¹ 2.563m ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Endpoints100%override/ApplyTwiceNoCompare-8 1.316m ± ∞ ¹ 1.271m ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Endpoints100%override/Update-8 1.403m ± ∞ ¹ 1.298m ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Endpoints100%override/UpdateVersion-8 2.571m ± ∞ ¹ 2.568m ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Endpoints10%override/Create-8 8.684µ ± ∞ ¹ 8.446µ ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Endpoints10%override/Apply-8 22.33µ ± ∞ ¹ 23.47µ ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Endpoints10%override/ApplyTwice-8 2.576m ± ∞ ¹ 2.517m ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Endpoints10%override/ApplyTwiceNoCompare-8 1.340m ± ∞ ¹ 1.313m ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Endpoints10%override/Update-8 1.258m ± ∞ ¹ 1.292m ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Endpoints10%override/UpdateVersion-8 2.488m ± ∞ ¹ 2.467m ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/PrometheusCRD/Create-8 839.7µ ± ∞ ¹ 834.1µ ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/PrometheusCRD/Apply-8 2.043m ± ∞ ¹ 2.097m ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/PrometheusCRD/ApplyTwice-8 5.566m ± ∞ ¹ 5.412m ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/PrometheusCRD/ApplyTwiceNoCompare-8 6.769m ± ∞ ¹ 6.015m ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/PrometheusCRD/Update-8 2.207m ± ∞ ¹ 2.425m ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/PrometheusCRD/UpdateVersion-8 3.403m ± ∞ ¹ 3.766m ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/apiresourceimport/Create-8 3.923m ± ∞ ¹ 4.281m ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/apiresourceimport/Apply-8 10.45m ± ∞ ¹ 10.56m ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/apiresourceimport/ApplyTwice-8 23.54m ± ∞ ¹ 21.45m ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/apiresourceimport/ApplyTwiceNoCompare-8 21.22m ± ∞ ¹ 24.39m ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/apiresourceimport/Update-8 6.833m ± ∞ ¹ 6.205m ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/apiresourceimport/UpdateVersion-8 9.176m ± ∞ ¹ 8.507m ± ∞ ¹ ~ (p=1.000 n=1) ²
DeducedSimple/EnableUnsetMarkers=false-8 80.34µ ± ∞ ¹
DeducedSimple/EnableUnsetMarkers=true-8 92.78µ ± ∞ ¹
DeducedNested/EnableUnsetMarkers=false-8 162.1µ ± ∞ ¹
DeducedNested/EnableUnsetMarkers=true-8 181.6µ ± ∞ ¹
DeducedNestedAcrossVersion/EnableUnsetMarkers=false-8 226.3µ ± ∞ ¹
DeducedNestedAcrossVersion/EnableUnsetMarkers=true-8 258.0µ ± ∞ ¹
LeafConflictAcrossVersion/EnableUnsetMarkers=false-8 112.6µ ± ∞ ¹
LeafConflictAcrossVersion/EnableUnsetMarkers=true-8 114.1µ ± ∞ ¹
geomean 674.1µ 582.5µ -5.63% ³
¹ need >= 6 samples for confidence interval at level 0.95
² need >= 4 samples to detect a difference at alpha level 0.05
³ benchmark set differs from baseline; geomeans may not be comparable
│ old.txt │ new.txt │
│ B/op │ B/op vs base │
DeducedSimple-8 27.92Ki ± ∞ ¹
DeducedNested-8 55.54Ki ± ∞ ¹
DeducedNestedAcrossVersion-8 73.16Ki ± ∞ ¹
LeafConflictAcrossVersion-8 39.11Ki ± ∞ ¹
MultipleApplierRecursiveRealConversion-8 700.8Ki ± ∞ ¹ 700.5Ki ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Pod/Create-8 19.71Ki ± ∞ ¹ 19.76Ki ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Pod/Apply-8 53.65Ki ± ∞ ¹ 53.69Ki ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Pod/ApplyTwice-8 110.8Ki ± ∞ ¹ 110.9Ki ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Pod/ApplyTwiceNoCompare-8 107.1Ki ± ∞ ¹ 107.1Ki ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Pod/Update-8 37.06Ki ± ∞ ¹ 37.10Ki ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Pod/UpdateVersion-8 48.58Ki ± ∞ ¹ 48.63Ki ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Node/Create-8 28.50Ki ± ∞ ¹ 28.55Ki ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Node/Apply-8 75.25Ki ± ∞ ¹ 75.29Ki ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Node/ApplyTwice-8 156.8Ki ± ∞ ¹ 156.9Ki ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Node/ApplyTwiceNoCompare-8 150.7Ki ± ∞ ¹ 150.7Ki ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Node/Update-8 54.23Ki ± ∞ ¹ 54.28Ki ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Node/UpdateVersion-8 71.58Ki ± ∞ ¹ 71.63Ki ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Endpoints/Create-8 2.933Ki ± ∞ ¹ 2.979Ki ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Endpoints/Apply-8 6.443Ki ± ∞ ¹ 6.492Ki ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Endpoints/ApplyTwice-8 202.0Ki ± ∞ ¹ 202.1Ki ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Endpoints/ApplyTwiceNoCompare-8 106.4Ki ± ∞ ¹ 106.4Ki ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Endpoints/Update-8 99.60Ki ± ∞ ¹ 99.66Ki ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Endpoints/UpdateVersion-8 194.7Ki ± ∞ ¹ 194.7Ki ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Node100%override/Create-8 28.50Ki ± ∞ ¹ 28.55Ki ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Node100%override/Apply-8 75.22Ki ± ∞ ¹ 75.28Ki ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Node100%override/ApplyTwice-8 156.8Ki ± ∞ ¹ 156.9Ki ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Node100%override/ApplyTwiceNoCompare-8 150.6Ki ± ∞ ¹ 150.7Ki ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Node100%override/Update-8 54.22Ki ± ∞ ¹ 54.27Ki ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Node100%override/UpdateVersion-8 71.57Ki ± ∞ ¹ 71.62Ki ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Node10%override/Create-8 28.50Ki ± ∞ ¹ 28.55Ki ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Node10%override/Apply-8 75.24Ki ± ∞ ¹ 75.28Ki ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Node10%override/ApplyTwice-8 156.8Ki ± ∞ ¹ 156.9Ki ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Node10%override/ApplyTwiceNoCompare-8 150.6Ki ± ∞ ¹ 150.7Ki ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Node10%override/Update-8 54.23Ki ± ∞ ¹ 54.27Ki ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Node10%override/UpdateVersion-8 71.58Ki ± ∞ ¹ 71.63Ki ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Endpoints100%override/Create-8 2.933Ki ± ∞ ¹ 2.979Ki ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Endpoints100%override/Apply-8 6.444Ki ± ∞ ¹ 6.491Ki ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Endpoints100%override/ApplyTwice-8 202.0Ki ± ∞ ¹ 202.1Ki ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Endpoints100%override/ApplyTwiceNoCompare-8 106.3Ki ± ∞ ¹ 106.4Ki ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Endpoints100%override/Update-8 99.61Ki ± ∞ ¹ 99.65Ki ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Endpoints100%override/UpdateVersion-8 194.7Ki ± ∞ ¹ 194.7Ki ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Endpoints10%override/Create-8 2.933Ki ± ∞ ¹ 2.979Ki ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Endpoints10%override/Apply-8 6.443Ki ± ∞ ¹ 6.491Ki ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Endpoints10%override/ApplyTwice-8 202.0Ki ± ∞ ¹ 202.0Ki ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Endpoints10%override/ApplyTwiceNoCompare-8 106.3Ki ± ∞ ¹ 106.4Ki ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Endpoints10%override/Update-8 99.61Ki ± ∞ ¹ 99.65Ki ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Endpoints10%override/UpdateVersion-8 194.7Ki ± ∞ ¹ 194.7Ki ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/PrometheusCRD/Create-8 161.2Ki ± ∞ ¹ 161.3Ki ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/PrometheusCRD/Apply-8 463.1Ki ± ∞ ¹ 462.7Ki ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/PrometheusCRD/ApplyTwice-8 964.6Ki ± ∞ ¹ 965.7Ki ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/PrometheusCRD/ApplyTwiceNoCompare-8 917.7Ki ± ∞ ¹ 917.5Ki ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/PrometheusCRD/Update-8 309.4Ki ± ∞ ¹ 309.4Ki ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/PrometheusCRD/UpdateVersion-8 411.9Ki ± ∞ ¹ 412.0Ki ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/apiresourceimport/Create-8 659.5Ki ± ∞ ¹ 659.5Ki ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/apiresourceimport/Apply-8 1.849Mi ± ∞ ¹ 1.849Mi ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/apiresourceimport/ApplyTwice-8 3.475Mi ± ∞ ¹ 3.477Mi ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/apiresourceimport/ApplyTwiceNoCompare-8 3.394Mi ± ∞ ¹ 3.395Mi ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/apiresourceimport/Update-8 988.9Ki ± ∞ ¹ 989.0Ki ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/apiresourceimport/UpdateVersion-8 1.285Mi ± ∞ ¹ 1.285Mi ± ∞ ¹ ~ (p=1.000 n=1) ²
DeducedSimple/EnableUnsetMarkers=false-8 27.98Ki ± ∞ ¹
DeducedSimple/EnableUnsetMarkers=true-8 29.08Ki ± ∞ ¹
DeducedNested/EnableUnsetMarkers=false-8 55.60Ki ± ∞ ¹
DeducedNested/EnableUnsetMarkers=true-8 59.01Ki ± ∞ ¹
DeducedNestedAcrossVersion/EnableUnsetMarkers=false-8 73.19Ki ± ∞ ¹
DeducedNestedAcrossVersion/EnableUnsetMarkers=true-8 76.67Ki ± ∞ ¹
LeafConflictAcrossVersion/EnableUnsetMarkers=false-8 39.15Ki ± ∞ ¹
LeafConflictAcrossVersion/EnableUnsetMarkers=true-8 40.29Ki ± ∞ ¹
geomean 102.5Ki 97.88Ki +0.17% ³
¹ need >= 6 samples for confidence interval at level 0.95
² need >= 4 samples to detect a difference at alpha level 0.05
³ benchmark set differs from baseline; geomeans may not be comparable
│ old.txt │ new.txt │
│ allocs/op │ allocs/op vs base │
DeducedSimple-8 673.0 ± ∞ ¹
DeducedNested-8 1.282k ± ∞ ¹
DeducedNestedAcrossVersion-8 1.708k ± ∞ ¹
LeafConflictAcrossVersion-8 877.0 ± ∞ ¹
MultipleApplierRecursiveRealConversion-8 7.532k ± ∞ ¹ 7.531k ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Pod/Create-8 459.0 ± ∞ ¹ 459.0 ± ∞ ¹ ~ (p=1.000 n=1) ³
Operations/Pod/Apply-8 1.296k ± ∞ ¹ 1.297k ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Pod/ApplyTwice-8 2.757k ± ∞ ¹ 2.759k ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Pod/ApplyTwiceNoCompare-8 2.654k ± ∞ ¹ 2.656k ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Pod/Update-8 928.0 ± ∞ ¹ 927.0 ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Pod/UpdateVersion-8 1.328k ± ∞ ¹ 1.329k ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Node/Create-8 556.0 ± ∞ ¹ 556.0 ± ∞ ¹ ~ (p=1.000 n=1) ³
Operations/Node/Apply-8 1.616k ± ∞ ¹ 1.617k ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Node/ApplyTwice-8 3.619k ± ∞ ¹ 3.621k ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Node/ApplyTwiceNoCompare-8 3.431k ± ∞ ¹ 3.433k ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Node/Update-8 1.251k ± ∞ ¹ 1.252k ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Node/UpdateVersion-8 1.855k ± ∞ ¹ 1.855k ± ∞ ¹ ~ (p=1.000 n=1) ³
Operations/Endpoints/Create-8 65.00 ± ∞ ¹ 65.00 ± ∞ ¹ ~ (p=1.000 n=1) ³
Operations/Endpoints/Apply-8 152.0 ± ∞ ¹ 153.0 ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Endpoints/ApplyTwice-8 4.356k ± ∞ ¹ 4.359k ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Endpoints/ApplyTwiceNoCompare-8 2.302k ± ∞ ¹ 2.304k ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Endpoints/Update-8 2.141k ± ∞ ¹ 2.141k ± ∞ ¹ ~ (p=1.000 n=1) ³
Operations/Endpoints/UpdateVersion-8 4.185k ± ∞ ¹ 4.185k ± ∞ ¹ ~ (p=1.000 n=1) ³
Operations/Node100%override/Create-8 556.0 ± ∞ ¹ 556.0 ± ∞ ¹ ~ (p=1.000 n=1) ³
Operations/Node100%override/Apply-8 1.616k ± ∞ ¹ 1.617k ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Node100%override/ApplyTwice-8 3.619k ± ∞ ¹ 3.621k ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Node100%override/ApplyTwiceNoCompare-8 3.431k ± ∞ ¹ 3.434k ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Node100%override/Update-8 1.251k ± ∞ ¹ 1.251k ± ∞ ¹ ~ (p=1.000 n=1) ³
Operations/Node100%override/UpdateVersion-8 1.855k ± ∞ ¹ 1.855k ± ∞ ¹ ~ (p=1.000 n=1) ³
Operations/Node10%override/Create-8 556.0 ± ∞ ¹ 556.0 ± ∞ ¹ ~ (p=1.000 n=1) ³
Operations/Node10%override/Apply-8 1.616k ± ∞ ¹ 1.617k ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Node10%override/ApplyTwice-8 3.619k ± ∞ ¹ 3.622k ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Node10%override/ApplyTwiceNoCompare-8 3.431k ± ∞ ¹ 3.434k ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Node10%override/Update-8 1.252k ± ∞ ¹ 1.251k ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Node10%override/UpdateVersion-8 1.855k ± ∞ ¹ 1.855k ± ∞ ¹ ~ (p=1.000 n=1) ³
Operations/Endpoints100%override/Create-8 65.00 ± ∞ ¹ 65.00 ± ∞ ¹ ~ (p=1.000 n=1) ³
Operations/Endpoints100%override/Apply-8 152.0 ± ∞ ¹ 153.0 ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Endpoints100%override/ApplyTwice-8 4.357k ± ∞ ¹ 4.359k ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Endpoints100%override/ApplyTwiceNoCompare-8 2.302k ± ∞ ¹ 2.304k ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Endpoints100%override/Update-8 2.141k ± ∞ ¹ 2.141k ± ∞ ¹ ~ (p=1.000 n=1) ³
Operations/Endpoints100%override/UpdateVersion-8 4.185k ± ∞ ¹ 4.185k ± ∞ ¹ ~ (p=1.000 n=1) ³
Operations/Endpoints10%override/Create-8 65.00 ± ∞ ¹ 65.00 ± ∞ ¹ ~ (p=1.000 n=1) ³
Operations/Endpoints10%override/Apply-8 152.0 ± ∞ ¹ 153.0 ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Endpoints10%override/ApplyTwice-8 4.357k ± ∞ ¹ 4.358k ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Endpoints10%override/ApplyTwiceNoCompare-8 2.302k ± ∞ ¹ 2.304k ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/Endpoints10%override/Update-8 2.141k ± ∞ ¹ 2.141k ± ∞ ¹ ~ (p=1.000 n=1) ³
Operations/Endpoints10%override/UpdateVersion-8 4.185k ± ∞ ¹ 4.185k ± ∞ ¹ ~ (p=1.000 n=1) ³
Operations/PrometheusCRD/Create-8 3.660k ± ∞ ¹ 3.660k ± ∞ ¹ ~ (p=1.000 n=1) ³
Operations/PrometheusCRD/Apply-8 10.18k ± ∞ ¹ 10.18k ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/PrometheusCRD/ApplyTwice-8 21.06k ± ∞ ¹ 21.07k ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/PrometheusCRD/ApplyTwiceNoCompare-8 19.95k ± ∞ ¹ 19.95k ± ∞ ¹ ~ (p=1.000 n=1) ³
Operations/PrometheusCRD/Update-8 6.907k ± ∞ ¹ 6.906k ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/PrometheusCRD/UpdateVersion-8 10.04k ± ∞ ¹ 10.04k ± ∞ ¹ ~ (p=1.000 n=1) ³
Operations/apiresourceimport/Create-8 15.34k ± ∞ ¹ 15.34k ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/apiresourceimport/Apply-8 42.99k ± ∞ ¹ 42.99k ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/apiresourceimport/ApplyTwice-8 83.83k ± ∞ ¹ 83.85k ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/apiresourceimport/ApplyTwiceNoCompare-8 81.76k ± ∞ ¹ 81.78k ± ∞ ¹ ~ (p=1.000 n=1) ²
Operations/apiresourceimport/Update-8 26.29k ± ∞ ¹ 26.29k ± ∞ ¹ ~ (p=1.000 n=1) ³
Operations/apiresourceimport/UpdateVersion-8 37.20k ± ∞ ¹ 37.20k ± ∞ ¹ ~ (p=1.000 n=1) ³
DeducedSimple/EnableUnsetMarkers=false-8 676.0 ± ∞ ¹
DeducedSimple/EnableUnsetMarkers=true-8 715.0 ± ∞ ¹
DeducedNested/EnableUnsetMarkers=false-8 1.285k ± ∞ ¹
DeducedNested/EnableUnsetMarkers=true-8 1.412k ± ∞ ¹
DeducedNestedAcrossVersion/EnableUnsetMarkers=false-8 1.711k ± ∞ ¹
DeducedNestedAcrossVersion/EnableUnsetMarkers=true-8 1.839k ± ∞ ¹
LeafConflictAcrossVersion/EnableUnsetMarkers=false-8 880.0 ± ∞ ¹
LeafConflictAcrossVersion/EnableUnsetMarkers=true-8 919.0 ± ∞ ¹
geomean 2.313k 2.213k +0.06% ⁴
¹ need >= 6 samples for confidence interval at level 0.95
² need >= 4 samples to detect a difference at alpha level 0.05
³ all samples are equal
⁴ benchmark set differs from baseline; geomeans may not be comparable
pkg: sigs.k8s.io/structured-merge-diff/v4/typed
│ old.txt │ new.txt │
│ sec/op │ sec/op vs base │
ConvertUnstructured/Pod/From-8 35.09µ ± ∞ ¹ 38.64µ ± ∞ ¹ ~ (p=1.000 n=1) ²
ConvertUnstructured/Pod/To-8 0.0000002000n ± ∞ ¹ 0.0000002000n ± ∞ ¹ ~ (p=1.000 n=1) ³
ConvertUnstructured/Node/From-8 82.05µ ± ∞ ¹ 76.10µ ± ∞ ¹ ~ (p=1.000 n=1) ²
ConvertUnstructured/Node/To-8 0.0000001000n ± ∞ ¹ 0.0000002000n ± ∞ ¹ ~ (p=1.000 n=1) ²
ConvertUnstructured/Endpoints/From-8 1.598m ± ∞ ¹ 1.522m ± ∞ ¹ ~ (p=1.000 n=1) ²
ConvertUnstructured/Endpoints/To-8 0.0000002000n ± ∞ ¹ 0.0000001000n ± ∞ ¹ ~ (p=1.000 n=1) ²
ConvertUnstructured/CustomResourceDefinition/From-8 611.8µ ± ∞ ¹ 505.1µ ± ∞ ¹ ~ (p=1.000 n=1) ²
ConvertUnstructured/CustomResourceDefinition/To-8 0.0000002000n ± ∞ ¹ 0.0000002000n ± ∞ ¹ ~ (p=1.000 n=1) ³
ValidateStructured/struct-8 23.49µ ± ∞ ¹ 20.17µ ± ∞ ¹ ~ (p=1.000 n=1) ²
geomean 0.7213n 0.6922n -4.04%
¹ need >= 6 samples for confidence interval at level 0.95
² need >= 4 samples to detect a difference at alpha level 0.05
³ all samples are equal
│ old.txt │ new.txt │
│ B/op │ B/op vs base │
ConvertUnstructured/Pod/From-8 4.736Ki ± ∞ ¹ 4.736Ki ± ∞ ¹ ~ (p=1.000 n=1) ²
ConvertUnstructured/Pod/To-8 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=1) ²
ConvertUnstructured/Node/From-8 13.46Ki ± ∞ ¹ 13.46Ki ± ∞ ¹ ~ (p=1.000 n=1) ²
ConvertUnstructured/Node/To-8 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=1) ²
ConvertUnstructured/Endpoints/From-8 190.8Ki ± ∞ ¹ 190.7Ki ± ∞ ¹ ~ (p=1.000 n=1) ³
ConvertUnstructured/Endpoints/To-8 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=1) ²
ConvertUnstructured/CustomResourceDefinition/From-8 56.26Ki ± ∞ ¹ 56.26Ki ± ∞ ¹ ~ (p=1.000 n=1) ³
ConvertUnstructured/CustomResourceDefinition/To-8 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=1) ²
ValidateStructured/struct-8 2.674Ki ± ∞ ¹ 2.674Ki ± ∞ ¹ ~ (p=1.000 n=1) ²
geomean ⁴ -0.01% ⁴
¹ need >= 6 samples for confidence interval at level 0.95
² all samples are equal
³ need >= 4 samples to detect a difference at alpha level 0.05
⁴ summaries must be >0 to compute geomean
│ old.txt │ new.txt │
│ allocs/op │ allocs/op vs base │
ConvertUnstructured/Pod/From-8 151.0 ± ∞ ¹ 151.0 ± ∞ ¹ ~ (p=1.000 n=1) ²
ConvertUnstructured/Pod/To-8 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=1) ²
ConvertUnstructured/Node/From-8 359.0 ± ∞ ¹ 359.0 ± ∞ ¹ ~ (p=1.000 n=1) ²
ConvertUnstructured/Node/To-8 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=1) ²
ConvertUnstructured/Endpoints/From-8 5.067k ± ∞ ¹ 5.064k ± ∞ ¹ ~ (p=1.000 n=1) ³
ConvertUnstructured/Endpoints/To-8 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=1) ²
ConvertUnstructured/CustomResourceDefinition/From-8 1.970k ± ∞ ¹ 1.970k ± ∞ ¹ ~ (p=1.000 n=1) ²
ConvertUnstructured/CustomResourceDefinition/To-8 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=1) ²
ValidateStructured/struct-8 78.00 ± ∞ ¹ 78.00 ± ∞ ¹ ~ (p=1.000 n=1) ²
geomean ⁴ -0.01% ⁴
¹ need >= 6 samples for confidence interval at level 0.95
² all samples are equal
³ need >= 4 samples to detect a difference at alpha level 0.05
⁴ summaries must be >0 to compute geomean
pkg: sigs.k8s.io/structured-merge-diff/v4/value
│ old.txt │ new.txt │
│ sec/op │ sec/op vs base │
Equals/pod.yaml/Equals-8 34.15µ ± ∞ ¹ 27.81µ ± ∞ ¹ ~ (p=1.000 n=1) ²
Equals/pod.yaml/EqualsUsingFreelist-8 27.64µ ± ∞ ¹ 22.07µ ± ∞ ¹ ~ (p=1.000 n=1) ²
Equals/endpoints.yaml/Equals-8 1.946m ± ∞ ¹ 1.309m ± ∞ ¹ ~ (p=1.000 n=1) ²
Equals/endpoints.yaml/EqualsUsingFreelist-8 1.264m ± ∞ ¹ 1.189m ± ∞ ¹ ~ (p=1.000 n=1) ²
Equals/list.yaml/Equals-8 6.129µ ± ∞ ¹ 6.856µ ± ∞ ¹ ~ (p=1.000 n=1) ²
Equals/list.yaml/EqualsUsingFreelist-8 4.854µ ± ∞ ¹ 4.680µ ± ∞ ¹ ~ (p=1.000 n=1) ²
Equals/node.yaml/Equals-8 62.66µ ± ∞ ¹ 54.28µ ± ∞ ¹ ~ (p=1.000 n=1) ²
Equals/node.yaml/EqualsUsingFreelist-8 50.63µ ± ∞ ¹ 43.80µ ± ∞ ¹ ~ (p=1.000 n=1) ²
Equals/prometheus-crd.yaml/Equals-8 517.2µ ± ∞ ¹ 478.8µ ± ∞ ¹ ~ (p=1.000 n=1) ²
Equals/prometheus-crd.yaml/EqualsUsingFreelist-8 437.4µ ± ∞ ¹ 396.2µ ± ∞ ¹ ~ (p=1.000 n=1) ²
geomean 93.23µ 82.04µ -12.00%
¹ need >= 6 samples for confidence interval at level 0.95
² need >= 4 samples to detect a difference at alpha level 0.05
│ old.txt │ new.txt │
│ B/op │ B/op vs base │
Equals/pod.yaml/Equals-8 4.258Ki ± ∞ ¹ 4.258Ki ± ∞ ¹ ~ (p=1.000 n=1) ²
Equals/pod.yaml/EqualsUsingFreelist-8 2.133Ki ± ∞ ¹ 2.133Ki ± ∞ ¹ ~ (p=1.000 n=1) ²
Equals/endpoints.yaml/Equals-8 157.2Ki ± ∞ ¹ 157.2Ki ± ∞ ¹ ~ (p=1.000 n=1) ²
Equals/endpoints.yaml/EqualsUsingFreelist-8 94.20Ki ± ∞ ¹ 94.20Ki ± ∞ ¹ ~ (p=1.000 n=1) ³
Equals/list.yaml/Equals-8 1.250Ki ± ∞ ¹ 1.250Ki ± ∞ ¹ ~ (p=1.000 n=1) ²
Equals/list.yaml/EqualsUsingFreelist-8 672.0 ± ∞ ¹ 672.0 ± ∞ ¹ ~ (p=1.000 n=1) ²
Equals/node.yaml/Equals-8 10.39Ki ± ∞ ¹ 10.39Ki ± ∞ ¹ ~ (p=1.000 n=1) ²
Equals/node.yaml/EqualsUsingFreelist-8 4.828Ki ± ∞ ¹ 4.828Ki ± ∞ ¹ ~ (p=1.000 n=1) ²
Equals/prometheus-crd.yaml/Equals-8 78.01Ki ± ∞ ¹ 78.01Ki ± ∞ ¹ ~ (p=1.000 n=1) ²
Equals/prometheus-crd.yaml/EqualsUsingFreelist-8 43.10Ki ± ∞ ¹ 43.10Ki ± ∞ ¹ ~ (p=1.000 n=1) ²
geomean 10.64Ki 10.64Ki -0.00%
¹ need >= 6 samples for confidence interval at level 0.95
² all samples are equal
³ need >= 4 samples to detect a difference at alpha level 0.05
│ old.txt │ new.txt │
│ allocs/op │ allocs/op vs base │
Equals/pod.yaml/Equals-8 159.0 ± ∞ ¹ 159.0 ± ∞ ¹ ~ (p=1.000 n=1) ²
Equals/pod.yaml/EqualsUsingFreelist-8 59.00 ± ∞ ¹ 59.00 ± ∞ ¹ ~ (p=1.000 n=1) ²
Equals/endpoints.yaml/Equals-8 6.036k ± ∞ ¹ 6.036k ± ∞ ¹ ~ (p=1.000 n=1) ²
Equals/endpoints.yaml/EqualsUsingFreelist-8 2.014k ± ∞ ¹ 2.014k ± ∞ ¹ ~ (p=1.000 n=1) ²
Equals/list.yaml/Equals-8 47.00 ± ∞ ¹ 47.00 ± ∞ ¹ ~ (p=1.000 n=1) ²
Equals/list.yaml/EqualsUsingFreelist-8 17.00 ± ∞ ¹ 17.00 ± ∞ ¹ ~ (p=1.000 n=1) ²
Equals/node.yaml/Equals-8 384.0 ± ∞ ¹ 384.0 ± ∞ ¹ ~ (p=1.000 n=1) ²
Equals/node.yaml/EqualsUsingFreelist-8 148.0 ± ∞ ¹ 148.0 ± ∞ ¹ ~ (p=1.000 n=1) ²
Equals/prometheus-crd.yaml/Equals-8 2.956k ± ∞ ¹ 2.956k ± ∞ ¹ ~ (p=1.000 n=1) ²
Equals/prometheus-crd.yaml/EqualsUsingFreelist-8 1.038k ± ∞ ¹ 1.038k ± ∞ ¹ ~ (p=1.000 n=1) ²
geomean 331.2 331.2 +0.00%
¹ need >= 6 samples for confidence interval at level 0.95
² all samples are equal
From PR:
BenchmarkDeducedSimple/EnableUnsetMarkers=false-8 15326 80337 ns/op 28651 B/op 676 allocs/op
BenchmarkDeducedSimple/EnableUnsetMarkers=true-8 13944 92782 ns/op 29783 B/op 715 allocs/op
BenchmarkDeducedNested/EnableUnsetMarkers=false-8 7680 162065 ns/op 56936 B/op 1285 allocs/op
BenchmarkDeducedNested/EnableUnsetMarkers=true-8 6939 181608 ns/op 60431 B/op 1412 allocs/op
BenchmarkDeducedNestedAcrossVersion/EnableUnsetMarkers=false-8 5334 226256 ns/op 74950 B/op 1711 allocs/op
BenchmarkDeducedNestedAcrossVersion/EnableUnsetMarkers=true-8 4471 257979 ns/op 78507 B/op 1839 allocs/op
BenchmarkLeafConflictAcrossVersion/EnableUnsetMarkers=false-8 11096 112647 ns/op 40088 B/op 880 allocs/op
BenchmarkLeafConflictAcrossVersion/EnableUnsetMarkers=true-8 9426 114050 ns/op 41253 B/op 919 allocs/op
From master:
BenchmarkDeducedSimple-8 15094 79607 ns/op 28590 B/op 673 allocs/op
BenchmarkDeducedNestedAcrossVersion-8 4461 238699 ns/op 74917 B/op 1708 allocs/op
BenchmarkLeafConflictAcrossVersion-8 10000 106892 ns/op 40046 B/op 877 allocs/op
goos: linux
goarch: amd64
pkg: sigs.k8s.io/structured-merge-diff/v4/fieldpath
cpu: Intel(R) Core(TM) i7-10610U CPU @ 1.80GHz
BenchmarkFieldSet/insert-20-8 111376 10999 ns/op 4811 B/op 78 allocs/op
BenchmarkFieldSet/has-20-8 2445682 541.8 ns/op 96 B/op 2 allocs/op
BenchmarkFieldSet/serialize-20-8 157376 8090 ns/op 1567 B/op 8 allocs/op
BenchmarkFieldSet/deserialize-20-8 50848 21095 ns/op 10001 B/op 232 allocs/op
BenchmarkFieldSet/union-20-8 161314 7228 ns/op 4390 B/op 54 allocs/op
BenchmarkFieldSet/intersection-20-8 295708 3476 ns/op 992 B/op 30 allocs/op
BenchmarkFieldSet/difference-20-8 186894 5430 ns/op 2687 B/op 43 allocs/op
BenchmarkFieldSet/recursive-difference-20-8 194680 5632 ns/op 2686 B/op 43 allocs/op
BenchmarkFieldSet/leaves-20-8 336456 3637 ns/op 2459 B/op 48 allocs/op
BenchmarkFieldSet/insert-50-8 30615 35515 ns/op 16255 B/op 246 allocs/op
BenchmarkFieldSet/has-50-8 1904286 607.7 ns/op 159 B/op 2 allocs/op
BenchmarkFieldSet/serialize-50-8 53600 20087 ns/op 4573 B/op 14 allocs/op
BenchmarkFieldSet/deserialize-50-8 23943 50644 ns/op 20466 B/op 659 allocs/op
BenchmarkFieldSet/union-50-8 61428 19118 ns/op 10329 B/op 134 allocs/op
BenchmarkFieldSet/intersection-50-8 145426 7628 ns/op 2057 B/op 62 allocs/op
BenchmarkFieldSet/difference-50-8 77444 14458 ns/op 6502 B/op 101 allocs/op
BenchmarkFieldSet/recursive-difference-50-8 68482 16094 ns/op 6527 B/op 103 allocs/op
BenchmarkFieldSet/leaves-50-8 86426 14313 ns/op 6945 B/op 150 allocs/op
BenchmarkFieldSet/insert-100-8 8992 137518 ns/op 60366 B/op 814 allocs/op
BenchmarkFieldSet/has-100-8 977809 1047 ns/op 309 B/op 3 allocs/op
BenchmarkFieldSet/serialize-100-8 18556 75638 ns/op 16064 B/op 39 allocs/op
BenchmarkFieldSet/deserialize-100-8 6721 210511 ns/op 60616 B/op 2306 allocs/op
BenchmarkFieldSet/union-100-8 21727 48593 ns/op 25864 B/op 257 allocs/op
BenchmarkFieldSet/intersection-100-8 53828 30301 ns/op 4010 B/op 124 allocs/op
BenchmarkFieldSet/difference-100-8 27171 43588 ns/op 15733 B/op 214 allocs/op
BenchmarkFieldSet/recursive-difference-100-8 24898 42618 ns/op 15985 B/op 216 allocs/op
BenchmarkFieldSet/leaves-100-8 22831 48696 ns/op 27499 B/op 633 allocs/op
BenchmarkFieldSet/insert-500-8 2235 593001 ns/op 314427 B/op 4139 allocs/op
BenchmarkFieldSet/has-500-8 1000000 1109 ns/op 351 B/op 3 allocs/op
BenchmarkFieldSet/serialize-500-8 2542 408148 ns/op 76398 B/op 184 allocs/op
BenchmarkFieldSet/deserialize-500-8 1644 802013 ns/op 276455 B/op 11471 allocs/op
BenchmarkFieldSet/union-500-8 6189 243996 ns/op 119672 B/op 1463 allocs/op
BenchmarkFieldSet/intersection-500-8 8962 121411 ns/op 23790 B/op 737 allocs/op
BenchmarkFieldSet/difference-500-8 6451 188514 ns/op 71631 B/op 1160 allocs/op
BenchmarkFieldSet/recursive-difference-500-8 5900 209987 ns/op 72992 B/op 1184 allocs/op
BenchmarkFieldSet/leaves-500-8 5278 277119 ns/op 138657 B/op 3221 allocs/op
BenchmarkFieldSet/insert-1000-8 973 1346585 ns/op 691419 B/op 8975 allocs/op
BenchmarkFieldSet/has-1000-8 810061 1338 ns/op 377 B/op 3 allocs/op
BenchmarkFieldSet/serialize-1000-8 1610 777631 ns/op 159072 B/op 391 allocs/op
BenchmarkFieldSet/deserialize-1000-8 704 1728037 ns/op 607451 B/op 24989 allocs/op
BenchmarkFieldSet/union-1000-8 2582 501505 ns/op 235934 B/op 2858 allocs/op
BenchmarkFieldSet/intersection-1000-8 5516 238049 ns/op 43115 B/op 1327 allocs/op
BenchmarkFieldSet/difference-1000-8 3508 379405 ns/op 149809 B/op 2233 allocs/op
BenchmarkFieldSet/recursive-difference-1000-8 3160 424974 ns/op 152833 B/op 2283 allocs/op
BenchmarkFieldSet/leaves-1000-8 2184 595246 ns/op 307553 B/op 7222 allocs/op
PASS
ok sigs.k8s.io/structured-merge-diff/v4/fieldpath 72.052s
PASS
ok sigs.k8s.io/structured-merge-diff/v4/internal/cli 0.290s
PASS
ok sigs.k8s.io/structured-merge-diff/v4/internal/fixture 0.016s
goos: linux
goarch: amd64
pkg: sigs.k8s.io/structured-merge-diff/v4/merge
cpu: Intel(R) Core(TM) i7-10610U CPU @ 1.80GHz
BenchmarkDeducedSimple/EnableUnsetMarkers=false-8 15326 80337 ns/op 28651 B/op 676 allocs/op
BenchmarkDeducedSimple/EnableUnsetMarkers=true-8 13944 92782 ns/op 29783 B/op 715 allocs/op
BenchmarkDeducedNested/EnableUnsetMarkers=false-8 7680 162065 ns/op 56936 B/op 1285 allocs/op
BenchmarkDeducedNested/EnableUnsetMarkers=true-8 6939 181608 ns/op 60431 B/op 1412 allocs/op
BenchmarkDeducedNestedAcrossVersion/EnableUnsetMarkers=false-8 5334 226256 ns/op 74950 B/op 1711 allocs/op
BenchmarkDeducedNestedAcrossVersion/EnableUnsetMarkers=true-8 4471 257979 ns/op 78507 B/op 1839 allocs/op
BenchmarkLeafConflictAcrossVersion/EnableUnsetMarkers=false-8 11096 112647 ns/op 40088 B/op 880 allocs/op
BenchmarkLeafConflictAcrossVersion/EnableUnsetMarkers=true-8 9426 114050 ns/op 41253 B/op 919 allocs/op
BenchmarkMultipleApplierRecursiveRealConversion-8 747 1597681 ns/op 717362 B/op 7531 allocs/op
BenchmarkOperations/Pod/Create-8 12639 89613 ns/op 20233 B/op 459 allocs/op
BenchmarkOperations/Pod/Apply-8 4730 243939 ns/op 54982 B/op 1297 allocs/op
BenchmarkOperations/Pod/ApplyTwice-8 1730 586288 ns/op 113548 B/op 2759 allocs/op
BenchmarkOperations/Pod/ApplyTwiceNoCompare-8 2116 558734 ns/op 109706 B/op 2656 allocs/op
BenchmarkOperations/Pod/Update-8 5078 221087 ns/op 37993 B/op 927 allocs/op
BenchmarkOperations/Pod/UpdateVersion-8 3439 323604 ns/op 49800 B/op 1329 allocs/op
BenchmarkOperations/Node/Create-8 8344 143464 ns/op 29237 B/op 556 allocs/op
BenchmarkOperations/Node/Apply-8 2703 378113 ns/op 77094 B/op 1617 allocs/op
BenchmarkOperations/Node/ApplyTwice-8 1125 940774 ns/op 160634 B/op 3621 allocs/op
BenchmarkOperations/Node/ApplyTwiceNoCompare-8 1420 907287 ns/op 154317 B/op 3433 allocs/op
BenchmarkOperations/Node/Update-8 3121 424355 ns/op 55584 B/op 1252 allocs/op
BenchmarkOperations/Node/UpdateVersion-8 2308 522591 ns/op 73351 B/op 1855 allocs/op
BenchmarkOperations/Endpoints/Create-8 120378 8673 ns/op 3051 B/op 65 allocs/op
BenchmarkOperations/Endpoints/Apply-8 48808 22107 ns/op 6648 B/op 153 allocs/op
BenchmarkOperations/Endpoints/ApplyTwice-8 454 2822825 ns/op 206919 B/op 4359 allocs/op
BenchmarkOperations/Endpoints/ApplyTwiceNoCompare-8 864 1333023 ns/op 108959 B/op 2304 allocs/op
BenchmarkOperations/Endpoints/Update-8 817 1302031 ns/op 102047 B/op 2141 allocs/op
BenchmarkOperations/Endpoints/UpdateVersion-8 468 2570512 ns/op 199405 B/op 4185 allocs/op
BenchmarkOperations/Node100%override/Create-8 7790 194484 ns/op 29235 B/op 556 allocs/op
BenchmarkOperations/Node100%override/Apply-8 2768 378298 ns/op 77087 B/op 1617 allocs/op
BenchmarkOperations/Node100%override/ApplyTwice-8 1243 915194 ns/op 160624 B/op 3621 allocs/op
BenchmarkOperations/Node100%override/ApplyTwiceNoCompare-8 1252 887485 ns/op 154316 B/op 3434 allocs/op
BenchmarkOperations/Node100%override/Update-8 3366 366140 ns/op 55574 B/op 1251 allocs/op
BenchmarkOperations/Node100%override/UpdateVersion-8 2346 560067 ns/op 73341 B/op 1855 allocs/op
BenchmarkOperations/Node10%override/Create-8 8346 151349 ns/op 29234 B/op 556 allocs/op
BenchmarkOperations/Node10%override/Apply-8 2997 461458 ns/op 77085 B/op 1617 allocs/op
BenchmarkOperations/Node10%override/ApplyTwice-8 1084 1008521 ns/op 160643 B/op 3622 allocs/op
BenchmarkOperations/Node10%override/ApplyTwiceNoCompare-8 1291 900946 ns/op 154328 B/op 3434 allocs/op
BenchmarkOperations/Node10%override/Update-8 3025 383820 ns/op 55569 B/op 1251 allocs/op
BenchmarkOperations/Node10%override/UpdateVersion-8 2067 554144 ns/op 73349 B/op 1855 allocs/op
BenchmarkOperations/Endpoints100%override/Create-8 133309 9070 ns/op 3051 B/op 65 allocs/op
BenchmarkOperations/Endpoints100%override/Apply-8 51610 22244 ns/op 6647 B/op 153 allocs/op
BenchmarkOperations/Endpoints100%override/ApplyTwice-8 469 2563210 ns/op 206908 B/op 4359 allocs/op
BenchmarkOperations/Endpoints100%override/ApplyTwiceNoCompare-8 931 1271333 ns/op 108947 B/op 2304 allocs/op
BenchmarkOperations/Endpoints100%override/Update-8 818 1298007 ns/op 102041 B/op 2141 allocs/op
BenchmarkOperations/Endpoints100%override/UpdateVersion-8 505 2567957 ns/op 199391 B/op 4185 allocs/op
BenchmarkOperations/Endpoints10%override/Create-8 138772 8446 ns/op 3051 B/op 65 allocs/op
BenchmarkOperations/Endpoints10%override/Apply-8 55266 23468 ns/op 6647 B/op 153 allocs/op
BenchmarkOperations/Endpoints10%override/ApplyTwice-8 487 2516924 ns/op 206882 B/op 4358 allocs/op
BenchmarkOperations/Endpoints10%override/ApplyTwiceNoCompare-8 950 1312626 ns/op 108962 B/op 2304 allocs/op
BenchmarkOperations/Endpoints10%override/Update-8 872 1292334 ns/op 102045 B/op 2141 allocs/op
BenchmarkOperations/Endpoints10%override/UpdateVersion-8 460 2466684 ns/op 199398 B/op 4185 allocs/op
BenchmarkOperations/PrometheusCRD/Create-8 1465 834069 ns/op 165128 B/op 3660 allocs/op
BenchmarkOperations/PrometheusCRD/Apply-8 571 2096559 ns/op 473850 B/op 10177 allocs/op
BenchmarkOperations/PrometheusCRD/ApplyTwice-8 208 5411605 ns/op 988919 B/op 21075 allocs/op
BenchmarkOperations/PrometheusCRD/ApplyTwiceNoCompare-8 230 6014743 ns/op 939524 B/op 19948 allocs/op
BenchmarkOperations/PrometheusCRD/Update-8 432 2424962 ns/op 316803 B/op 6906 allocs/op
BenchmarkOperations/PrometheusCRD/UpdateVersion-8 373 3766270 ns/op 421838 B/op 10037 allocs/op
BenchmarkOperations/apiresourceimport/Create-8 264 4280774 ns/op 675358 B/op 15344 allocs/op
BenchmarkOperations/apiresourceimport/Apply-8 100 10557965 ns/op 1938577 B/op 42993 allocs/op
BenchmarkOperations/apiresourceimport/ApplyTwice-8 55 21450286 ns/op 3645680 B/op 83849 allocs/op
BenchmarkOperations/apiresourceimport/ApplyTwiceNoCompare-8 55 24390887 ns/op 3560167 B/op 81775 allocs/op
BenchmarkOperations/apiresourceimport/Update-8 198 6204854 ns/op 1012757 B/op 26294 allocs/op
BenchmarkOperations/apiresourceimport/UpdateVersion-8 133 8507065 ns/op 1347689 B/op 37201 allocs/op
PASS
ok sigs.k8s.io/structured-merge-diff/v4/merge 97.579s
PASS
ok sigs.k8s.io/structured-merge-diff/v4/schema 0.035s
? sigs.k8s.io/structured-merge-diff/v4/smd [no test files]
goos: linux
goarch: amd64
pkg: sigs.k8s.io/structured-merge-diff/v4/typed
cpu: Intel(R) Core(TM) i7-10610U CPU @ 1.80GHz
BenchmarkConvertUnstructured/Pod/From-8 32650 38642 ns/op 4850 B/op 151 allocs/op
BenchmarkConvertUnstructured/Pod/To-8 1000000000 0.0000002 ns/op 0 B/op 0 allocs/op
BenchmarkConvertUnstructured/Node/From-8 14810 76104 ns/op 13786 B/op 359 allocs/op
BenchmarkConvertUnstructured/Node/To-8 1000000000 0.0000002 ns/op 0 B/op 0 allocs/op
BenchmarkConvertUnstructured/Endpoints/From-8 751 1521828 ns/op 195298 B/op 5064 allocs/op
BenchmarkConvertUnstructured/Endpoints/To-8 1000000000 0.0000001 ns/op 0 B/op 0 allocs/op
BenchmarkConvertUnstructured/CustomResourceDefinition/From-8 2078 505098 ns/op 57607 B/op 1970 allocs/op
BenchmarkConvertUnstructured/CustomResourceDefinition/To-8 1000000000 0.0000002 ns/op 0 B/op 0 allocs/op
BenchmarkValidateStructured/struct-8 56323 20171 ns/op 2738 B/op 78 allocs/op
PASS
ok sigs.k8s.io/structured-merge-diff/v4/typed 7.519s
goos: linux
goarch: amd64
pkg: sigs.k8s.io/structured-merge-diff/v4/value
cpu: Intel(R) Core(TM) i7-10610U CPU @ 1.80GHz
BenchmarkEquals/pod.yaml/Equals-8 37836 27806 ns/op 4360 B/op 159 allocs/op
BenchmarkEquals/pod.yaml/EqualsUsingFreelist-8 54807 22072 ns/op 2184 B/op 59 allocs/op
BenchmarkEquals/endpoints.yaml/Equals-8 831 1308856 ns/op 161001 B/op 6036 allocs/op
BenchmarkEquals/endpoints.yaml/EqualsUsingFreelist-8 1011 1188710 ns/op 96457 B/op 2014 allocs/op
BenchmarkEquals/list.yaml/Equals-8 212756 6856 ns/op 1280 B/op 47 allocs/op
BenchmarkEquals/list.yaml/EqualsUsingFreelist-8 269148 4680 ns/op 672 B/op 17 allocs/op
BenchmarkEquals/node.yaml/Equals-8 20246 54282 ns/op 10640 B/op 384 allocs/op
BenchmarkEquals/node.yaml/EqualsUsingFreelist-8 23268 43799 ns/op 4944 B/op 148 allocs/op
BenchmarkEquals/prometheus-crd.yaml/Equals-8 2168 478791 ns/op 79880 B/op 2956 allocs/op
BenchmarkEquals/prometheus-crd.yaml/EqualsUsingFreelist-8 2799 396228 ns/op 44137 B/op 1038 allocs/op
PASS
ok sigs.k8s.io/structured-merge-diff/v4/value 16.467s
goos: linux
goarch: amd64
pkg: sigs.k8s.io/structured-merge-diff/v4/fieldpath
cpu: Intel(R) Core(TM) i7-10610U CPU @ 1.80GHz
BenchmarkFieldSet/insert-20-8 108205 12024 ns/op 4810 B/op 78 allocs/op
BenchmarkFieldSet/has-20-8 2819155 434.6 ns/op 96 B/op 2 allocs/op
BenchmarkFieldSet/serialize-20-8 199874 6667 ns/op 1592 B/op 8 allocs/op
BenchmarkFieldSet/deserialize-20-8 64368 22984 ns/op 10002 B/op 232 allocs/op
BenchmarkFieldSet/union-20-8 182630 6958 ns/op 4352 B/op 53 allocs/op
BenchmarkFieldSet/intersection-20-8 306220 3291 ns/op 982 B/op 29 allocs/op
BenchmarkFieldSet/difference-20-8 245482 5178 ns/op 2674 B/op 43 allocs/op
BenchmarkFieldSet/recursive-difference-20-8 177314 6063 ns/op 2674 B/op 43 allocs/op
BenchmarkFieldSet/leaves-20-8 329396 3658 ns/op 2452 B/op 47 allocs/op
BenchmarkFieldSet/insert-50-8 32624 35668 ns/op 16249 B/op 246 allocs/op
BenchmarkFieldSet/has-50-8 1991439 582.1 ns/op 160 B/op 2 allocs/op
BenchmarkFieldSet/serialize-50-8 55800 20748 ns/op 4590 B/op 14 allocs/op
BenchmarkFieldSet/deserialize-50-8 24957 51441 ns/op 20458 B/op 660 allocs/op
BenchmarkFieldSet/union-50-8 58714 24257 ns/op 10310 B/op 134 allocs/op
BenchmarkFieldSet/intersection-50-8 123214 8661 ns/op 2057 B/op 62 allocs/op
BenchmarkFieldSet/difference-50-8 72172 16327 ns/op 6485 B/op 101 allocs/op
BenchmarkFieldSet/recursive-difference-50-8 65204 16878 ns/op 6524 B/op 103 allocs/op
BenchmarkFieldSet/leaves-50-8 93030 13737 ns/op 6932 B/op 150 allocs/op
BenchmarkFieldSet/insert-100-8 10000 118415 ns/op 60328 B/op 813 allocs/op
BenchmarkFieldSet/has-100-8 1245855 922.8 ns/op 309 B/op 3 allocs/op
BenchmarkFieldSet/serialize-100-8 16165 71354 ns/op 15926 B/op 39 allocs/op
BenchmarkFieldSet/deserialize-100-8 7617 219776 ns/op 60597 B/op 2304 allocs/op
BenchmarkFieldSet/union-100-8 21495 66088 ns/op 25907 B/op 258 allocs/op
BenchmarkFieldSet/intersection-100-8 54562 20806 ns/op 4037 B/op 125 allocs/op
BenchmarkFieldSet/difference-100-8 31873 36615 ns/op 15769 B/op 215 allocs/op
BenchmarkFieldSet/recursive-difference-100-8 32014 39790 ns/op 16027 B/op 217 allocs/op
BenchmarkFieldSet/leaves-100-8 20086 54591 ns/op 27582 B/op 635 allocs/op
BenchmarkFieldSet/insert-500-8 2324 660729 ns/op 314308 B/op 4138 allocs/op
BenchmarkFieldSet/has-500-8 1000000 1260 ns/op 352 B/op 3 allocs/op
BenchmarkFieldSet/serialize-500-8 2958 390108 ns/op 75332 B/op 184 allocs/op
BenchmarkFieldSet/deserialize-500-8 1484 865765 ns/op 276556 B/op 11475 allocs/op
BenchmarkFieldSet/union-500-8 5592 272543 ns/op 119679 B/op 1463 allocs/op
BenchmarkFieldSet/intersection-500-8 10000 120495 ns/op 23811 B/op 737 allocs/op
BenchmarkFieldSet/difference-500-8 6715 184924 ns/op 71598 B/op 1159 allocs/op
BenchmarkFieldSet/recursive-difference-500-8 6226 196153 ns/op 72922 B/op 1181 allocs/op
BenchmarkFieldSet/leaves-500-8 5110 283380 ns/op 138537 B/op 3219 allocs/op
BenchmarkFieldSet/insert-1000-8 926 1362085 ns/op 691319 B/op 8970 allocs/op
BenchmarkFieldSet/has-1000-8 752100 1395 ns/op 377 B/op 3 allocs/op
BenchmarkFieldSet/serialize-1000-8 1624 796923 ns/op 157750 B/op 393 allocs/op
BenchmarkFieldSet/deserialize-1000-8 718 1768337 ns/op 607924 B/op 25013 allocs/op
BenchmarkFieldSet/union-1000-8 2936 500208 ns/op 236122 B/op 2858 allocs/op
BenchmarkFieldSet/intersection-1000-8 5176 241094 ns/op 42855 B/op 1322 allocs/op
BenchmarkFieldSet/difference-1000-8 3345 386274 ns/op 150010 B/op 2251 allocs/op
BenchmarkFieldSet/recursive-difference-1000-8 2876 460775 ns/op 152790 B/op 2285 allocs/op
BenchmarkFieldSet/leaves-1000-8 2184 658642 ns/op 307458 B/op 7220 allocs/op
PASS
ok sigs.k8s.io/structured-merge-diff/v4/fieldpath 72.846s
PASS
ok sigs.k8s.io/structured-merge-diff/v4/internal/cli 0.296s
PASS
ok sigs.k8s.io/structured-merge-diff/v4/internal/fixture 0.013s
goos: linux
goarch: amd64
pkg: sigs.k8s.io/structured-merge-diff/v4/merge
cpu: Intel(R) Core(TM) i7-10610U CPU @ 1.80GHz
BenchmarkDeducedSimple-8 15094 79607 ns/op 28590 B/op 673 allocs/op
BenchmarkDeducedNested-8 7924 159558 ns/op 56878 B/op 1282 allocs/op
BenchmarkDeducedNestedAcrossVersion-8 4461 238699 ns/op 74917 B/op 1708 allocs/op
BenchmarkLeafConflictAcrossVersion-8 10000 106892 ns/op 40046 B/op 877 allocs/op
BenchmarkMultipleApplierRecursiveRealConversion-8 770 1571097 ns/op 717594 B/op 7532 allocs/op
BenchmarkOperations/Pod/Create-8 10000 103126 ns/op 20185 B/op 459 allocs/op
BenchmarkOperations/Pod/Apply-8 4275 264033 ns/op 54941 B/op 1296 allocs/op
BenchmarkOperations/Pod/ApplyTwice-8 1935 640601 ns/op 113500 B/op 2757 allocs/op
BenchmarkOperations/Pod/ApplyTwiceNoCompare-8 2011 591867 ns/op 109666 B/op 2654 allocs/op
BenchmarkOperations/Pod/Update-8 4450 242829 ns/op 37954 B/op 928 allocs/op
BenchmarkOperations/Pod/UpdateVersion-8 3692 347607 ns/op 49745 B/op 1328 allocs/op
BenchmarkOperations/Node/Create-8 8013 156030 ns/op 29187 B/op 556 allocs/op
BenchmarkOperations/Node/Apply-8 3297 401073 ns/op 77058 B/op 1616 allocs/op
BenchmarkOperations/Node/ApplyTwice-8 1162 1000537 ns/op 160604 B/op 3619 allocs/op
BenchmarkOperations/Node/ApplyTwiceNoCompare-8 1334 903463 ns/op 154276 B/op 3431 allocs/op
BenchmarkOperations/Node/Update-8 3325 403879 ns/op 55528 B/op 1251 allocs/op
BenchmarkOperations/Node/UpdateVersion-8 1638 660290 ns/op 73303 B/op 1855 allocs/op
BenchmarkOperations/Endpoints/Create-8 103743 10947 ns/op 3003 B/op 65 allocs/op
BenchmarkOperations/Endpoints/Apply-8 49876 24114 ns/op 6598 B/op 152 allocs/op
BenchmarkOperations/Endpoints/ApplyTwice-8 378 3367128 ns/op 206839 B/op 4356 allocs/op
BenchmarkOperations/Endpoints/ApplyTwiceNoCompare-8 790 1540884 ns/op 108908 B/op 2302 allocs/op
BenchmarkOperations/Endpoints/Update-8 747 1528103 ns/op 101995 B/op 2141 allocs/op
BenchmarkOperations/Endpoints/UpdateVersion-8 415 3069663 ns/op 199347 B/op 4185 allocs/op
BenchmarkOperations/Node100%override/Create-8 7986 154552 ns/op 29188 B/op 556 allocs/op
BenchmarkOperations/Node100%override/Apply-8 3247 390122 ns/op 77030 B/op 1616 allocs/op
BenchmarkOperations/Node100%override/ApplyTwice-8 1167 979280 ns/op 160555 B/op 3619 allocs/op
BenchmarkOperations/Node100%override/ApplyTwiceNoCompare-8 1268 1220391 ns/op 154232 B/op 3431 allocs/op
BenchmarkOperations/Node100%override/Update-8 3151 397115 ns/op 55526 B/op 1251 allocs/op
BenchmarkOperations/Node100%override/UpdateVersion-8 1446 737599 ns/op 73291 B/op 1855 allocs/op
BenchmarkOperations/Node10%override/Create-8 6933 179579 ns/op 29185 B/op 556 allocs/op
BenchmarkOperations/Node10%override/Apply-8 2268 464078 ns/op 77044 B/op 1616 allocs/op
BenchmarkOperations/Node10%override/ApplyTwice-8 984 1182329 ns/op 160567 B/op 3619 allocs/op
BenchmarkOperations/Node10%override/ApplyTwiceNoCompare-8 1138 1055689 ns/op 154237 B/op 3431 allocs/op
BenchmarkOperations/Node10%override/Update-8 3138 456487 ns/op 55527 B/op 1252 allocs/op
BenchmarkOperations/Node10%override/UpdateVersion-8 2347 564717 ns/op 73301 B/op 1855 allocs/op
BenchmarkOperations/Endpoints100%override/Create-8 153685 8912 ns/op 3003 B/op 65 allocs/op
BenchmarkOperations/Endpoints100%override/Apply-8 47503 22083 ns/op 6599 B/op 152 allocs/op
BenchmarkOperations/Endpoints100%override/ApplyTwice-8 462 2633722 ns/op 206852 B/op 4357 allocs/op
BenchmarkOperations/Endpoints100%override/ApplyTwiceNoCompare-8 924 1315735 ns/op 108897 B/op 2302 allocs/op
BenchmarkOperations/Endpoints100%override/Update-8 902 1403435 ns/op 101998 B/op 2141 allocs/op
BenchmarkOperations/Endpoints100%override/UpdateVersion-8 415 2571456 ns/op 199340 B/op 4185 allocs/op
BenchmarkOperations/Endpoints10%override/Create-8 136812 8684 ns/op 3003 B/op 65 allocs/op
BenchmarkOperations/Endpoints10%override/Apply-8 53872 22333 ns/op 6598 B/op 152 allocs/op
BenchmarkOperations/Endpoints10%override/ApplyTwice-8 428 2575606 ns/op 206846 B/op 4357 allocs/op
BenchmarkOperations/Endpoints10%override/ApplyTwiceNoCompare-8 880 1340453 ns/op 108902 B/op 2302 allocs/op
BenchmarkOperations/Endpoints10%override/Update-8 967 1258168 ns/op 102002 B/op 2141 allocs/op
BenchmarkOperations/Endpoints10%override/UpdateVersion-8 470 2488247 ns/op 199350 B/op 4185 allocs/op
BenchmarkOperations/PrometheusCRD/Create-8 1528 839677 ns/op 165075 B/op 3660 allocs/op
BenchmarkOperations/PrometheusCRD/Apply-8 650 2043229 ns/op 474209 B/op 10180 allocs/op
BenchmarkOperations/PrometheusCRD/ApplyTwice-8 198 5565648 ns/op 987756 B/op 21062 allocs/op
BenchmarkOperations/PrometheusCRD/ApplyTwiceNoCompare-8 240 6768674 ns/op 939677 B/op 19948 allocs/op
BenchmarkOperations/PrometheusCRD/Update-8 555 2206589 ns/op 316809 B/op 6907 allocs/op
BenchmarkOperations/PrometheusCRD/UpdateVersion-8 376 3402990 ns/op 421804 B/op 10037 allocs/op
BenchmarkOperations/apiresourceimport/Create-8 312 3923113 ns/op 675279 B/op 15343 allocs/op
BenchmarkOperations/apiresourceimport/Apply-8 100 10454552 ns/op 1938335 B/op 42990 allocs/op
BenchmarkOperations/apiresourceimport/ApplyTwice-8 58 23540806 ns/op 3643835 B/op 83831 allocs/op
BenchmarkOperations/apiresourceimport/ApplyTwiceNoCompare-8 57 21223924 ns/op 3558907 B/op 81760 allocs/op
BenchmarkOperations/apiresourceimport/Update-8 177 6832823 ns/op 1012674 B/op 26294 allocs/op
BenchmarkOperations/apiresourceimport/UpdateVersion-8 133 9176494 ns/op 1347632 B/op 37201 allocs/op
PASS
ok sigs.k8s.io/structured-merge-diff/v4/merge 87.409s
PASS
ok sigs.k8s.io/structured-merge-diff/v4/schema 0.030s
? sigs.k8s.io/structured-merge-diff/v4/smd [no test files]
goos: linux
goarch: amd64
pkg: sigs.k8s.io/structured-merge-diff/v4/typed
cpu: Intel(R) Core(TM) i7-10610U CPU @ 1.80GHz
BenchmarkConvertUnstructured/Pod/From-8 29468 35092 ns/op 4850 B/op 151 allocs/op
BenchmarkConvertUnstructured/Pod/To-8 1000000000 0.0000002 ns/op 0 B/op 0 allocs/op
BenchmarkConvertUnstructured/Node/From-8 15180 82045 ns/op 13786 B/op 359 allocs/op
BenchmarkConvertUnstructured/Node/To-8 1000000000 0.0000001 ns/op 0 B/op 0 allocs/op
BenchmarkConvertUnstructured/Endpoints/From-8 740 1597670 ns/op 195422 B/op 5067 allocs/op
BenchmarkConvertUnstructured/Endpoints/To-8 1000000000 0.0000002 ns/op 0 B/op 0 allocs/op
BenchmarkConvertUnstructured/CustomResourceDefinition/From-8 2412 611829 ns/op 57608 B/op 1970 allocs/op
BenchmarkConvertUnstructured/CustomResourceDefinition/To-8 1000000000 0.0000002 ns/op 0 B/op 0 allocs/op
BenchmarkValidateStructured/struct-8 58646 23488 ns/op 2738 B/op 78 allocs/op
PASS
ok sigs.k8s.io/structured-merge-diff/v4/typed 9.097s
goos: linux
goarch: amd64
pkg: sigs.k8s.io/structured-merge-diff/v4/value
cpu: Intel(R) Core(TM) i7-10610U CPU @ 1.80GHz
BenchmarkEquals/pod.yaml/Equals-8 43117 34153 ns/op 4360 B/op 159 allocs/op
BenchmarkEquals/pod.yaml/EqualsUsingFreelist-8 39258 27636 ns/op 2184 B/op 59 allocs/op
BenchmarkEquals/endpoints.yaml/Equals-8 824 1946421 ns/op 161001 B/op 6036 allocs/op
BenchmarkEquals/endpoints.yaml/EqualsUsingFreelist-8 800 1264371 ns/op 96458 B/op 2014 allocs/op
BenchmarkEquals/list.yaml/Equals-8 222090 6129 ns/op 1280 B/op 47 allocs/op
BenchmarkEquals/list.yaml/EqualsUsingFreelist-8 262742 4854 ns/op 672 B/op 17 allocs/op
BenchmarkEquals/node.yaml/Equals-8 21691 62662 ns/op 10640 B/op 384 allocs/op
BenchmarkEquals/node.yaml/EqualsUsingFreelist-8 22572 50627 ns/op 4944 B/op 148 allocs/op
BenchmarkEquals/prometheus-crd.yaml/Equals-8 2022 517249 ns/op 79880 B/op 2956 allocs/op
BenchmarkEquals/prometheus-crd.yaml/EqualsUsingFreelist-8 3099 437390 ns/op 44137 B/op 1038 allocs/op
PASS
ok sigs.k8s.io/structured-merge-diff/v4/value 14.991s
git checkout master
go test -bench . ./... > old.txt
git checkout unsetting-fields
go test -bench . ./... > new.txt
go install golang.org/x/perf/cmd/benchstat@latest
benchstat old.txt new.txt
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment