uv
0bbcf757 - Store Git URL fields out of line (#22833)

Commit
11 days ago
Store Git URL fields out of line (#22833) `GitUrl` stores two URLs, a Git reference, and a resolved commit. We embed it in the Git variant of `RequirementSource`, so registry and path requirements also reserve space for those fields. Moving them behind an `Arc` shrinks `GitUrl` from 280 bytes to 8 and `Requirement` from 520 bytes to 320 on x86-64. Clones share the Git fields until a reference or commit changes. We measured a large project with no Git dependencies against `main` at `4954c25`. Each row uses four paired runs on Linux with a warm, offline cache. Peak RSS values are medians, and the changes are medians of the within-pair differences in percent. | Resolve | Main peak RSS | This PR | RSS reduction | Wall time | | --- | ---: | ---: | ---: | ---: | | Fresh lock | 767.1 MiB | 697.0 MiB | 9.1% | 1.5% faster | | Full upgrade | 1,017.1 MiB | 894.7 MiB | 12.0% | 1.2% faster |
Author
Parents
Loading