Benchmark long-lived PET sessions, real concurrent resolves, and inventory scaling
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 5/5
- Tempo estimado
- Mais de uma semana
- Facilidade para iniciantes
- 35/100
- Tipo de issue
- Funcionalidade
- Clareza
- Razoavelmente clara
- Status de atividade
- Ativa
- Stack de tecnologia
- github-actions, rust
- Domínio
- ci-cd, performance, testing-qa
Direção de pesquisa
Start with crates/pet/tests/e2e_performance.rs and .github/workflows/perf-tests.yml, including the linked cold/warm summary and concurrent-resolve test; review dependencies #531, #529, and #530 before designing the workload. Done means CI runs reproducible long-lived and actually concurrent scenarios, catches identity replacements, reports calibrated latency/resource measurements, and documents fast versus stress invocations.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
Tracking plan: #528
Priority: P2, required before structural performance optimization. Evidence: source inspection and existing benchmark inventory.
Problem
The gated summary starts a fresh PET process for both members of every cold/warm pair. It measures persisted-cache warmth, not repeated operations in a long-lived VS Code session. The function named test_concurrent_resolve_performance actually resolves sequentially, and the workflow selects only the summary test. Inventory checks compare counts, not identities.
The exact-audit-revision release workload contains only 5 environments on Linux, 8 on Windows, and 10 on macOS. This cannot establish bounds on thread growth, cache retention, or large workspace behavior. Existing real-manager benchmarks remain valuable and should not be replaced.
Sources: cold/warm summary, sequential concurrent-resolve test, performance workflow.
Scope
Add a deterministic fixture workload alongside the installed-manager benchmark. Separate process-cold/disk-warm/same-process-warm scenarios, and exercise actual overlapping refresh/resolve/configure activity. Sweep representative inventory/workspace sizes (for example 1, 10, 100, and 1000), with expensive stress/soak variants isolated from the fast PR gate if necessary.
Measure client latency, first-result latency, peak workers/threads, subprocess counts, cache/resource growth, and retained memory where reliable platform APIs exist. Compare normalized environment/manager identities, not just counts. Keep diagnostic output privacy-safe and ensure measurement does not backpressure the timed transport.
Acceptance criteria
- CI runs a repeated-refresh workload against one server process and an actually concurrent resolve workload; test naming and selection match behavior.
- Create/delete/edit/alias-churn scenarios verify fresh, correctly identified environments in a long-lived process.
- Inventory assertions detect one environment disappearing and another replacing it even when counts match.
- Size/concurrency sweeps produce usable latency and resource measurements with explicit sample counts and reproducible fixtures.
- Resource expectations/budgets are calibrated from measurements rather than arbitrary performance claims or unstable host-wide counters.
- Fast deterministic checks remain PR-friendly; longer stress runs have a documented invocation and CI schedule/entry point.
Dependencies
Depends on #531 for accurate timing definitions and #529 for reliable process teardown. Reuse the subprocess fixtures/cleanup contract from #530. Outputs establish the baseline for bounded scheduling, output-lock isolation, and Poetry indexing under #528.
- Linguagem predominante
- Rust
- Estrelas
- 207
- Forks
- 45
- Merge médio
- 3d 6h
- PRs com merge (30d)
- 12
Guia de contribuição
Nenhum guia de contribuição indexado para este repositório
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de microsoft/python-environment-tools
-
enhancement
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 35/100
-
debt
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 25/100
microsoft/python-environment-tools#538 · 1 comentário ·
-
enhancement
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 35/100
-
debt
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 35/100
-
debt
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 35/100
microsoft/python-environment-tools#534 · 1 comentário ·
Todas as issues de microsoft/python-environment-tools
Issues semelhantes
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
TheLarkInn/aipm#2413 ·
-
documentation
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 90/100
alexgorbatchev/simple-ptt#15 ·
-
tooling
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
-
todo:ticket
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 70/100
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
taikoxyz/taiko-mono#22168 · 1 comentário ·