From 0a02d4b17a6f577c966bb7d81ca868da21a0d8d0 Mon Sep 17 00:00:00 2001 From: manoj-1407 Date: Fri, 31 Jul 2026 05:42:59 +0000 Subject: [PATCH] Optimize inventory.Diff with map lookup Replace the O(n) versionOf closure with a map built once upfront, reducing complexity from O(n*m) to O(n+m). On large inventories this avoids redundant linear scans on every prune cycle. Signed-off-by: manoj-1407 Assisted-by: Claude/claude-sonnet-4-6 --- internal/inventory/inventory.go | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/internal/inventory/inventory.go b/internal/inventory/inventory.go index 1d6682b1..ed04d774 100644 --- a/internal/inventory/inventory.go +++ b/internal/inventory/inventory.go @@ -121,13 +121,9 @@ func ListMetadata(inv *kustomizev1.ResourceInventory) (object.ObjMetadataSet, er // Diff returns the slice of objects that do not exist in the target inventory. func Diff(inv *kustomizev1.ResourceInventory, target *kustomizev1.ResourceInventory) ([]*unstructured.Unstructured, error) { - versionOf := func(i *kustomizev1.ResourceInventory, objMetadata object.ObjMetadata) string { - for _, entry := range i.Entries { - if entry.ID == objMetadata.String() { - return entry.Version - } - } - return "" + versionMap := make(map[string]string, len(inv.Entries)) + for _, entry := range inv.Entries { + versionMap[entry.ID] = entry.Version } objects := make([]*unstructured.Unstructured, 0) @@ -151,7 +147,7 @@ func Diff(inv *kustomizev1.ResourceInventory, target *kustomizev1.ResourceInvent u.SetGroupVersionKind(schema.GroupVersionKind{ Group: metadata.GroupKind.Group, Kind: metadata.GroupKind.Kind, - Version: versionOf(inv, metadata), + Version: versionMap[metadata.String()], }) u.SetName(metadata.Name) u.SetNamespace(metadata.Namespace)