# UNDF: UNDF-2026-000000807 # UNDF: (leave blank) # vscode-0001: extensionGalleryService.getExtensions uuid dedup O(N×M) # # File: src/vs/platform/extensionManagement/common/extensionGalleryService.ts # Function: getExtensions (line ~659) # # Defect: uuids array built via result.map(), then for each extensionInfo # uuids.includes(e.uuid) is called — O(N×M) where N=extensionInfos, # M=result count. # Fix: Convert uuids to a Set for O(1) lookup. # Severity: MEDIUM (N=installed extensions, typically 50-200) # Speedup: 100x at N=200 # --- a/src/vs/platform/extensionManagement/common/extensionGalleryService.ts +++ b/src/vs/platform/extensionManagement/common/extensionGalleryService.ts @@ -659,7 +659,7 @@ - const uuids = result.map(r => r.identifier.uuid); + const uuids = new Set(result.map(r => r.identifier.uuid)); const extensionInfosByName: IExtensionInfo[] = []; for (const e of extensionInfos) { - if (e.uuid && !uuids.includes(e.uuid)) { + if (e.uuid && !uuids.has(e.uuid)) { extensionInfosByName.push({ ...e, uuid: undefined }); } }