GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — lib: fix virtual package lookup performance by Duncaen · Pull Request #625 · void-linux/xbps

Conversation

@Duncaen

@Duncaen Duncaen commented May 19, 2025

Copy link
Copy Markdown
Member

Instead of having a dict with pkgvers as keys and iterating over all keys to match virtual packages, change the map to have pkgnames as keys, which hold another dict with all the old keys and values for a given package name.

This significantly speeds up XBPS, since for every package it would iterate over the whole virtual package map. With recent changes to xbps-src, where it generates cmd: and py3: virtual packages, the number of virtual packages in the map has been growing a lot.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
classabbyamp
classabbyamp approved these changes May 19, 2025
View reviewed changes

@classabbyamp classabbyamp left a comment

Copy link
Copy Markdown
Member

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

seems sound to me

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@Duncaen
lib: fix virtual package lookup performance
61f0141
Instead of having a dict with pkgvers as keys and iterating over all
keys to match virtual packages, change the map to have pkgnames as keys,
which hold another dict with all the old keys and values for a given
package name.

This significantly speeds up XBPS, since for every package it would
iterate over the whole virtual package map. With recent changes to
xbps-src, where it generates cmd: and py3: virtual packages,
the number of virtual packages in the map has been growing a lot.
@Duncaen
Duncaen force-pushed the fix-virtualpkg-performance branch from 8b9cde5 to 61f0141 Compare May 20, 2025 13:59
@Duncaen Duncaen closed this May 20, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

1 more reviewer
@classabbyamp classabbyamp classabbyamp approved these changes
Reviewers whose approvals may not affect merge requirements

Uh oh!

There was an error while loading. Please reload this page.

Assignees

No one assigned

Labels

None yet

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

Uh oh!

There was an error while loading. Please reload this page.

2 participants

@Duncaen @classabbyamp
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.
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.