Benchmark long-lived PET sessions, real concurrent resolves, and inventory scaling
还没有人认领这个 Issue。
评估
- 难度
- 5/5
- 预计耗时
- 一周以上
- 新手友好度
- 35/100
- Issue 类型
- 功能
- 描述清晰度
- 基本清楚
- 活跃度
- 活跃
- 技术栈
- github-actions, rust
- 领域
- ci-cd, performance, testing-qa
调研方向
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.
由索引模型根据 Issue 内容生成。
描述
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.
- 主要语言
- Rust
- 星标
- 207
- 派生
- 45
- 平均合并
- 8 小时 19 分钟
- 30 天内合并 PR
- 2
贡献指南
这个仓库没有索引到贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
microsoft/python-environment-tools 的其他 Issue
-
难度 2/5 1-3 小时 新手友好度 72/100
microsoft/python-environment-tools#525 · 1 条评论 ·
-
enhancement
难度 5/5 一周以上 新手友好度 35/100
-
debt
难度 5/5 一周以上 新手友好度 25/100
-
enhancement
难度 5/5 一周以上 新手友好度 35/100
-
debt
难度 5/5 一周以上 新手友好度 35/100
查看 microsoft/python-environment-tools 的全部 Issue
相似的 Issue
-
难度 2/5 1-3 小时 新手友好度 75/100
-
issue
难度 2/5 1-3 小时 新手友好度 65/100
-
难度 2/5 1-3 小时 新手友好度 75/100
-
agentic-workflows
难度 2/5 1-3 小时 新手友好度 70/100
-
难度 2/5 1-3 小时 新手友好度 88/100
web-infra-dev/rspack#15847 ·