feat: try to speed up pixi global list
#2609
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I tried to speed up
pixi global list
. My first attempt was to not load all the prefix records, and instead infer name / version / build string from the ".json" filenames inconda-meta
.However, this is not the only place where we are loading the PrefixRecords. We are also loading them to validate that environments are in sync. That now takes up the majority (>80%) of the time of
pixi global list
.Short term: we should also have a "fast-in-sync" function that does not require loading all prefix records.
Long term: we should serialize PrefixRecords as msgpack and make parsing them really, really fast as this is slowing pixi down in multiple places (e.g.
pixi run
, ...).