Skip to content

Reduce metadata contention while preserving runspace safety - #8

Closed
jessehouwing with Copilot wants to merge 2 commits into
mainfrom
copilot/analyze-performance-regressions
Closed

jessehouwing with Copilot wants to merge 2 commits into
mainfrom
copilot/analyze-performance-regressions

Conversation

Copilot AI commented Sep 14, 2026

Copy link
Copy Markdown

Runspace serialization stabilized analysis but regressed performance against upstream. These changes reduce work entering the locks without relaxing synchronization; end-to-end gains remain unmeasured.

  • Metadata and caching

    • Skip unused casing/export metadata requests and eliminate cache-hit allocations.
    • Cache immutable snapshots and mandatory-parameter summaries for static cmdlets; retain locked, uncached queries for dynamic metadata.
    • Share manifest results and errors within one analysis, preserving freshness between analyses.
  • Safety invariants

    • Preserve reentrant locking, lookup-before-lock ordering, cache bypass, fault eviction, and qualified Get-Command retries.
  • Performance comparison

    • Compare pinned upstream main, fork main, and fork perf across repeated fresh-process cold/warm runs.
    • Report medians/ranges, verify full diagnostic fingerprints, and optionally collect lock-wait/hold times and cache counters.
    • Retry failed upstream attempts until success or job timeout; retain failure logs and mark affected comparisons ⚠️, explicitly identifying successful-attempt timing bias.

Copilot AI and others added 2 commits September 14, 2026 20:01
Co-authored-by: jessehouwing <4173387+jessehouwing@users.noreply.github.com>
Co-authored-by: jessehouwing <4173387+jessehouwing@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants