Benchmark long-lived PET sessions, real concurrent resolves, and inventory scaling
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 35/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Attiva
- Stack tecnologico
- github-actions, rust
- Ambito
- ci-cd, performance, testing-qa
Direzione di ricerca
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.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
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.
- Lingua principale
- Rust
- Stelle
- 207
- Fork
- 45
- Merge medio
- 8h 19m
- PR unite (30g)
- 2
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di microsoft/python-environment-tools
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
microsoft/python-environment-tools#525 · 1 commento ·
-
enhancement
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
-
debt
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
-
enhancement
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
-
debt
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
Tutte le issue di microsoft/python-environment-tools
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
Eynzof/Hermes-CN-Desktop#616 ·
-
bug rules
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
-
app bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
IronCoreLabs/ironcore-alloy#346 ·
-
good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100