{"schemaVersion":"2.0.0","locale":"en","title":"Expensive projection repeated by a comparator","description":"Rule ID: performance.comparator-projection-amplification@1.0.0. Availability below refers to source-scan at product 524fa07e.","htmlUrl":"https://docs.swift-analyzer.com/catalog/performance.comparator-projection-amplification/","markdownUrl":"https://docs.swift-analyzer.com/catalog/performance.comparator-projection-amplification/index.md","productRevision":"524fa07e0ae4153c84ac12ae9eb6559df89ec2be","catalogRevision":"4558458d","docsRevision":"1f17ba58ab08627e0de898f1442067b09e960b48cd5605d6529e9275f8930d68","channel":"pre-prod","maturity":"experimental","access":"owner-provided-checkout","markdown":"# Expensive projection repeated by a comparator\n\nRule ID: performance.comparator-projection-amplification@1.0.0. Availability below refers to source-scan at product 524fa07e.\n\n## V-PERF-07 — Expensive projection repeated by a comparator\n\nExpensive projection repeated by a comparator. It examines repeated work, allocation, traversal, retention, and scheduling cost.\n\n### Availability\n\nNot available in source-scan. There is no source-scan flag to activate this condition.\n\n### Example and action\n\nIllustrative pattern only. This is not a complete runnable package or a reproduced source-scan result. Helper APIs and omitted context must be supplied by the application.\n\n```swift\nlet sorted = rows.sorted { key($0) < key($1) }\n```\n\nConfirm the operation is on a relevant path and measure with representative input. Preserve evaluation order, laziness, errors and memory behavior when changing the algorithm.\n\n```swift\nlet keyed = rows.map { (key: key($0), value: $0) }\nlet sorted = keyed.sorted { $0.key < $1.key }.map(\\.value)\n```\n\n### Intended analysis\n\nIntended reasoning: Relate a repeated operation to its input size, consumption and cost assumptions. An intended cost warning needs the loop bounds and actual collection behavior; syntax alone is not a measured runtime regression. Required evidence: cost, multiplicity, collection, allocation, and lifetime facts\n\n### Assumptions and unknown\n\nThe relevant facts must be admitted for the selected immutable build world. Unknown aliases, external effects, unsupported source forms or incomplete consumers can prevent a conclusion. Availability in this workflow is stated above; the illustration does not expand that availability.\n\n### Evidence and interpretation\n\nThe target catalog describes the intended condition. It is not evidence of an active source-scan diagnostic.\n\nHistorical evidence at 4558458d: recovery-required (historical qualification is incomplete and needs further evidence). That evidence has not been requalified for this product revision.\n\n[How we validate checks](https://docs.swift-analyzer.com/concepts/validation/) explains the evidence boundary. [Foundations](https://docs.swift-analyzer.com/concepts/foundations/) separates method assumptions from implementation claims.\n","anchors":["expensive-projection-repeated-by-a-comparator","V-PERF-07","availability","example-and-action","intended-analysis","assumptions-and-unknown","evidence-and-interpretation"]}
