Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

pixi global list is very slow #2605

Closed
2 tasks done
dhirschfeld opened this issue Dec 1, 2024 · 7 comments
Closed
2 tasks done

pixi global list is very slow #2605

dhirschfeld opened this issue Dec 1, 2024 · 7 comments
Labels
area:global Related to pixi global

Comments

@dhirschfeld
Copy link
Contributor

Checks

  • I have checked that this issue has not already been reported.

  • I have confirmed this bug exists on the latest version of pixi, using pixi --version.

Reproducible example

❯ pixi --version
pixi 0.38.0

❯ time pixi global list
<snip>

real    0m11.746s
user    0m3.372s
sys     0m9.271s
pixi-global.tomlversion = 1 [envs.awscli] channels = ["conda-forge"] dependencies = { awscli = "*" } exposed = { aws_completer = "aws_completer", aws_zsh_completer = "aws_zsh_completer", "aws.cmd" = "aws.cmd", aws = "aws", aws_bash_completer = "aws_bash_completer" } [envs.argocd-cli] channels = ["conda-forge"] dependencies = { argocd-cli = "*" } exposed = { argocd = "argocd" } [envs.zoxide] channels = ["conda-forge"] dependencies = { zoxide = "*" } exposed = { zoxide = "zoxide" } [envs.uv] channels = ["conda-forge"] dependencies = { uv = "*" } exposed = { uvx = "uvx", uv = "uv" } [envs.ghostscript] channels = ["conda-forge"] dependencies = { ghostscript = "*" } exposed = { pdf2dsc = "pdf2dsc", ps2ps2 = "ps2ps2", pfbtopfa = "pfbtopfa", ps2epsi = "ps2epsi", ps2pdf = "ps2pdf", unix-lpr = "unix-lpr", printafm = "printafm", gslp = "gslp", pdf2ps = "pdf2ps", ps2pdfwr = "ps2pdfwr", dvipdf = "dvipdf", pf2afm = "pf2afm", ps2ps = "ps2ps", ps2pdf12 = "ps2pdf12", gsnd = "gsnd", gs = "gs", pphs = "pphs", gslj = "gslj", ps2pdf14 = "ps2pdf14", lprsetup = "lprsetup", ps2ascii = "ps2ascii", gsdj500 = "gsdj500", eps2eps = "eps2eps", gsbj = "gsbj", ps2pdf13 = "ps2pdf13", gsdj = "gsdj" } [envs.kubernetes-helm] channels = ["conda-forge"] dependencies = { kubernetes-helm = "*" } exposed = { helm = "helm" } [envs.micromamba] channels = ["conda-forge"] dependencies = { micromamba = "*" } exposed = { conda = "micromamba", micromamba = "micromamba" } [envs.nodejs] channels = ["conda-forge"] dependencies = { nodejs = "*" } exposed = { npm = "npm", npx = "npx", corepack = "corepack", node = "node" } [envs.starship] channels = ["conda-forge"] dependencies = { starship = "*" } exposed = { starship = "starship" } [envs.toolong] channels = ["conda-forge"] dependencies = { toolong = "*" } exposed = { tl = "tl" } [envs.fd-find] channels = ["conda-forge"] dependencies = { fd-find = "*" } exposed = { fd = "fd" } [envs.skopeo] channels = ["conda-forge"] dependencies = { skopeo = "*" } exposed = { skopeo = "skopeo" } [envs.databricks-cli] channels = ["conda-forge"] dependencies = { databricks-cli = "*" } exposed = { databricks = "databricks" } [envs.kubernetes-client] channels = ["conda-forge"] dependencies = { kubernetes-client = "*" } exposed = { kubectl = "kubectl", kubectl-convert = "kubectl-convert" } [envs.terraform] channels = ["conda-forge"] dependencies = { terraform = "*" } exposed = { terraform = "terraform" } [envs.harlequin] channels = ["conda-forge"] dependencies = { harlequin = "*" } exposed = { harlequin = "harlequin" } [envs.git-delta] channels = ["conda-forge"] dependencies = { git-delta = "*" } exposed = { delta = "delta" } [envs.podman] channels = ["conda-forge"] dependencies = { podman = "*" } exposed = { podmansh = "podmansh", podman = "podman", podman-remote = "podman-remote" } [envs.jq] channels = ["conda-forge"] dependencies = { jq = "*" } exposed = { jq = "jq" } [envs.gh] channels = ["conda-forge"] dependencies = { gh = "*" } exposed = { gh = "gh" } [envs.ripgrep] channels = ["conda-forge"] dependencies = { ripgrep = "*" } exposed = { rg = "rg" } [envs.hyperfine] channels = ["conda-forge"] dependencies = { hyperfine = "*" } exposed = { hyperfine = "hyperfine" } [envs.eza] channels = ["conda-forge"] dependencies = { eza = "*" } exposed = { eza = "eza" } [envs.crane] channels = ["conda-forge"] dependencies = { crane = "*" } exposed = { crane = "crane" } [envs.pgcli] channels = ["conda-forge"] dependencies = { pgcli = "*" } exposed = { pgcli = "pgcli" } [envs.opentofu] channels = ["conda-forge"] dependencies = { opentofu = "*" } exposed = { tofu = "tofu" } [envs.go-sqlcmd] channels = ["conda-forge"] dependencies = { go-sqlcmd = "*" } exposed = { sqlcmd = "sqlcmd" } [envs.helix] channels = ["conda-forge"] dependencies = { helix = "*" } exposed = { hx = "hx" } [envs.bat] channels = ["conda-forge"] dependencies = { bat = "*" } exposed = { bat = "bat" } [envs.fzf] channels = ["conda-forge"] dependencies = { fzf = "*" } exposed = { fzf = "fzf" } [envs.pixi-pack] channels = ["conda-forge"] dependencies = { pixi-pack = "*" } exposed = { pixi-pack = "pixi-pack" } [envs.copier] channels = ["conda-forge"] dependencies = { copier = "*", copier-templates-extensions = "*" } exposed = { copier = "copier" } [envs.grayskull] channels = ["conda-forge"] dependencies = { grayskull = "*" } exposed = { grayskull = "grayskull", greyskull = "greyskull", conda-grayskull = "conda-grayskull", conda-greyskull = "conda-greyskull" } [envs.conda-package-handling] channels = ["conda-forge"] dependencies = { conda-package-handling = "*" } exposed = { cph = "cph" } [envs.conda-recipe-manager] channels = ["https://prefix.dev/conda-forge"] dependencies = { conda-recipe-manager = "*" } exposed = { conda-recipe-manager = "conda-recipe-manager", crm = "crm" }

Issue description

Listing the global environment is much slower than it used to be.

Expected behavior

❯ pixi --version
pixi 0.37.0

❯ time pixi global list
<snip>

real    0m2.762s
user    0m1.214s
sys     0m2.927s
@dhirschfeld dhirschfeld changed the title pixi global list bvery slow pixi global list is very slow Dec 1, 2024
@Hofer-Julian Hofer-Julian added the area:global Related to pixi global label Dec 1, 2024
@Hofer-Julian
Copy link
Contributor

This is very surprising, thanks for writing this up.

On which platform are you measuring this?

@dhirschfeld
Copy link
Contributor Author

On which platform are you measuring this?

Ubuntu 22.04.4

@Hofer-Julian
Copy link
Contributor

Hofer-Julian commented Dec 2, 2024

I can reproduce this.

927 ms with pixi version 0.38
185 ms with pixi version 0.37

@Hofer-Julian
Copy link
Contributor

I cannot reproduce it with current main.
We are planning to release 0.39 today.

@dhirschfeld please let us know if you can then still reproduce this problem

@wolfv
Copy link
Member

wolfv commented Dec 2, 2024

I tried to fix some of the slowness here and I know how to fix the rest: #2609

@dhirschfeld
Copy link
Contributor Author

Seems fast again in 0.39.0:

❯ pixi --version
pixi 0.38.0

❯ time pixi global list
<snip>

real    0m13.491s
user    0m3.726s
sys     0m10.620s


❯ pixi --version
pixi 0.39.0

❯ time pixi global list
<snip>

real    0m2.811s
user    0m1.362s
sys     0m3.341s

@Hofer-Julian
Copy link
Contributor

Great!
Let's close this issue then.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area:global Related to pixi global
Projects
None yet
Development

No branches or pull requests

3 participants