Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

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

Aberta
#886 0 comentários 0 reações 0 responsáveis Ver no GitHub

Mantenedores costumam responder em até 1 dia

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
3/5
Tempo estimado
1-2 dias
Facilidade para iniciantes
58/100
Tipo de issue
Bug
Clareza
Claramente especificada
Status de atividade
Ativa
Stack de tecnologia
rust
Domínio
performance

Direção de pesquisa

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.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

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.

Linguagem predominante
Rust
Estrelas
480
Forks
50
Merge médio
1d 3h
PRs com merge (30d)
62

Preparar o ambiente

Abrir no Codespaces

Inicia o contêiner de desenvolvimento do projeto no navegador, com a sua própria conta do GitHub.

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de voidzero-dev/vite-task

Todas as issues de voidzero-dev/vite-task

Issues semelhantes

Mais issues de Rust

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.