This improves install and ensure perf by making the following changes:
Batch all store path existence checks. (previously we did one by one, each nix ls call is about 50ms)
If lockfile has store paths we use them (instead of trying to get them from nix)
Fix regression in FillNarInfoCache
How was it tested?
Installed large devbox.json (30+ packages) and used DEVBOX_PRINT_EXEC_TIME and observed almost all "prep" time disappear. prep time is the work devbox does before actually building the packages.
Summary
This improves install and ensure perf by making the following changes:
nix ls
call is about 50ms)FillNarInfoCache
How was it tested?
Installed large devbox.json (30+ packages) and used
DEVBOX_PRINT_EXEC_TIME
and observed almost all "prep" time disappear. prep time is the work devbox does before actually building the packages.