Hacktoberfest 2026: die Issues, die Maintainer für den Oktober markiert haben – offen und einsteigerfreundlich. Hacktoberfest-Issues durchsuchen

A cached vp run spends seconds compiling the same cache globs while building the task graph

Offen
#886 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Maintainer antworten meist innerhalb von 1 Tag

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Anfängerfreundlichkeit
58/100
Issue-Typ
Bug
Klarheit
Klar beschrieben
Aktivitätsstatus
Aktiv
Tech-Stack
rust
Bereich
performance

Rechercherichtung

Start in crates/vt_graph/src/config/mod.rs at resolve_glob_to_workspace_relative, where each input and output pattern is parsed, and compare repeated pattern uses with distinct patterns. The issue measures time spent building the task graph after configs load; use the reported cached vp run @libs/enum#test case to assess the improvement. Done means the same patterns are parsed once and the cached run spends less CPU building the graph.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

Written by an AI agent (Claude) on behalf of @jasonkuhrt.

In a workspace of 138 packages and 1,576 tasks, vp run @libs/enum#test with both of its tasks cached spends about 2 s of CPU after the configs load and before the first task starts, building the task graph.

Cause. resolve_glob_to_workspace_relative calls wax::Glob::new for every input and output pattern of every task. In wax 0.7, Glob::new compiles a regular expression and partition compiles another, and only the partition's prefix and text are kept. The workspace has 13,708 pattern uses but only 1,011 distinct patterns: packages repeat the same src/** and the same negations.

Measured (Vite+ 1.4.0 built against vite-task a3c087a7, optimized binding, macOS, 3 interleaved runs per variant, load average about 7):

before parse each distinct pattern once
whole run, CPU 4.45 s 2.47 s
whole run, wall 3.75 s 1.79 s
after configs load, CPU 2.06 s 0.10 s

A second, separate idea. Configs load one package after another (lib.rs). A prototype that let up to 8 loads overlap, keeping results in order, returned the same 138 configs as the serial load and took the same run from 2.47 s to 2.19 s CPU (1.79 s to 1.62 s wall) on top of the glob change. A config whose result depends on load order would be the risk, so it is left out of the fix.

Vorherrschende Sprache
Rust
Sterne
480
Forks
50
Ø Merge
1 T. 3 Std.
Gemergte PRs (30 T.)
62

Entwicklungsumgebung

In Codespaces öffnen

Startet den Dev-Container des Projekts im Browser, mit Ihrem eigenen GitHub-Konto.

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus voidzero-dev/vite-task

Alle Issues in voidzero-dev/vite-task

Ähnliche Issues

Weitere Issues zu Rust

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.