mirror of
https://github.com/astral-sh/uv.git
synced 2025-10-17 05:47:45 +00:00
Update pubgrub to set-based outdated priority tracking (#11169)
Looks like the set based prioritize tracking from https://github.com/pubgrub-rs/pubgrub/pull/313 is a slight speedup. I assume the changed derivation tree in the error snapshot is due to out-of-sync virtual package priorities, while the main package priority defining the solution remains stable. ``` $ hyperfine --warmup 2 "./uv-main pip compile --no-progress scripts/requirements/airflow.in --universal" "./uv-branch pip compile --no-progress scripts/requirements/airflow.in --universal" Benchmark 1: ./uv-main pip compile --no-progress scripts/requirements/airflow.in --universal Time (mean ± σ): 115.0 ms ± 4.8 ms [User: 131.0 ms, System: 113.6 ms] Range (min … max): 108.1 ms … 125.8 ms 25 runs Benchmark 2: ./uv-branch pip compile --no-progress scripts/requirements/airflow.in --universal Time (mean ± σ): 105.4 ms ± 2.6 ms [User: 118.5 ms, System: 113.5 ms] Range (min … max): 101.1 ms … 111.9 ms 28 runs Summary ./uv-branch pip compile --no-progress scripts/requirements/airflow.in --universal ran 1.09 ± 0.05 times faster than ./uv-main pip compile --no-progress scripts/requirements/airflow.in --universal ```
This commit is contained in:
parent
d27e41a43a
commit
f7c3f30a16
4 changed files with 13 additions and 11 deletions
|
@ -391,8 +391,10 @@ impl<InstalledPackages: InstalledPackagesProvider> ResolverState<InstalledPackag
|
|||
.map(|(p, v)| format!("{}=={}", state.pubgrub.package_store[p], v))
|
||||
.join(", ")
|
||||
);
|
||||
// Choose a package .
|
||||
let Some(highest_priority_pkg) =
|
||||
// Choose a package.
|
||||
// We aren't allowed to use the term intersection as it would extend the
|
||||
// mutable borrow of `state`.
|
||||
let Some((highest_priority_pkg, _)) =
|
||||
state.pubgrub.partial_solution.pick_highest_priority_pkg(
|
||||
|id, _range| state.priorities.get(&state.pubgrub.package_store[id]),
|
||||
)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue