Skip to content

Measure and bound coupling analysis on large monorepos #9

Closed

Description

@typeweaver

Context

Coupling counts every pair of files in every commit with at most 50 universe files, keyed by string — up to 1,225 pairs per commit. Memory and time for very large monorepos (tens of thousands of commits and files) are unmeasured.

Goal

Know the cost of coupling analysis on a large repository and keep it bounded.

Acceptance criteria

  • A measurement on a large public monorepo (for example 50k+ commits) records wall time and peak RSS in docs/toolchain.md or the README's known limits.
  • If peak memory exceeds a budget agreed in this issue, pair counting is bounded (for example integer file ids instead of string keys, or pruning pairs below minSharedCommits), with the measurement repeated.

References

  • packages/engine/src/coupling/coupling.ts

Activity

  1. typeweaver commented on Sep 30, 2026

    @typeweaver
    MemberAuthor

    Budget used for this issue: on a public repository with 30k+ commits (angular/angular, ~38.7k), the default 12-month window must finish in under 60 s with under 1 GB peak RSS; --since 10y is measured but not budgeted. Measured: ~10 s and ~140 MB for the Node process (git adds ~275 MB) — see docs/toolchain.md → Performance.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions