[efficiency-improver] Monthly Activity 2026-10
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 20/100
- Issue type
- Refactor
- Clarity
- Needs clarification
- Activity status
- Active
- Tech stack
- csharp, github-actions
- Domain
- testing-qa, tooling
Research direction
This is an automated monthly tracker rather than a single implementation task; first review the listed candidate areas and cross-check performance backlog issue #10914. The issue names possible files and build/test commands, but it does not define one change, acceptance criteria, or a specific test demonstrating completion.
Written by the indexing model from the issue text.
Description
Activity for October 2026
Suggested Actions for Maintainer
No suggested actions at this time.
Energy Efficiency Backlog
| Priority | Focus Area | Opportunity | Estimated Impact |
|---|---|---|---|
| LOW | Code-Level | TestExecutionManager MethodLevel parallel array-per-test in setup |
One-time setup cost |
| LOW-MEDIUM | Code-Level | RuntimeRegistrationEmitter.EmitResolveMethodHelper/ResolveProperty (source generator): O(N×M) linear scan per test method at module-init |
One-time per-assembly startup cost, not a hot loop; re-examined 2026-10-13, still not worth changing |
| LOW | Code-Level | VideoProduction.cs ProducePerTestVideosAsync O(tests×segments) overlap scan |
Runs once at end-of-run (cold path) |
| LOW | Test Infra | test/Utilities/Microsoft.Testing.TestInfrastructure: regex-on-error-retry, tiny-collection LINQ |
Cold/low-frequency, negligible scale |
| LOW | Code-Level | MSTestTelemetryDataCollector.SerializeCollection/SerializeDictionary: OrderBy on telemetry flush |
Once per session (cold path) |
| LOW | Code-Level | TestClassModelBuilder (source generator): Where/GroupBy/Select for duplicate-method detection |
Compile-time only, not a runtime hot path |
| LOW | Code-Level | src/Adapter/MSTest.TestAdapter: reflection-based GetRuntimeMethod lookup in TestMethodFilter (cold, once per discovery context) |
Negligible, cold path |
| LOW | Code-Level | WindowTest.WindowSetup (MSTest.Windows.UIAutomation): fixed 50ms poll interval for window discovery, no exponential backoff |
Bounded by 10s timeout, once per test class (cold path); no measurement story in this sandbox (Windows-only) |
| LOW | Code-Level | TestDataConnectionSql.Names.cs SplitName/FindIdentifierEnd (NETFRAMEWORK-only legacy SQL/CSV/Excel table-name parsing): no caching across repeated calls |
Cold path, gated behind legacy net462 data-driven tests; re-examined 2026-10-13, still not worth changing |
| LOW | Infrastructure | CI output-byte-count health metric | Needs maintainer discussion |
| LOW-MEDIUM | Code-Level | Executable-condition analyzer (#10634) recursive tree walk not memoized | Gated behind narrow guards, single if-statement match per test method (cold/compile-time path), not urgent |
Repo continues to be actively self-optimized by maintainers/Copilot coding agent. This run reviewed 10 commits landed since the previous run (2026-10-13T21:46Z): "Update .NET runtimes to latest versions" (#11927, dependency/TFM bump, no logic change); "[code-simplifier] Deduplicate failure-result construction in TestHostControllersTestHost" (#11931) — pure structural dedup (local function extraction for 4 duplicated failure-result tuples), no behavior or allocation-shape change, confirmed via full diff; "Prepare gated Linux/macOS affected-test collection" (#11930) and "Isolate affected-test collection from Windows validation" (#11926) — CI workflow-only; "Split MtpServerClient into focused partial files" (#11919) — pure file reorganization of the new ServerMode client library (Capabilities/Execution/Notifications partials), reviewed the full implementation for per-test-result/per-notification hot-path inefficiencies (JSON dictionary parsing, test-node building, response normalization) and found none — allocations are proportional to genuinely necessary payload data (one MtpTestNodeUpdate/MtpAttachment per actual test-node change), TryGetValue used correctly throughout with no repeated lookups; "Inventory all mutation-testing projects and onboard uncovered modules" (#11912) — CI/tooling infra only; remaining commits were OneLoc/dependency/doc updates. Delegated a focused fresh-code scan of src/Package/MSTest.Sdk, src/TestFramework/TestFramework.Extensions (non-PrivateObject areas), the new ServerMode.Client.Sources client library, and src/Platform/Microsoft.Testing.Platform/Hosts for new orchestrator code — 0 new HIGH/MEDIUM findings; TestHostOrchestratorHost.RunAsync confirmed one-time per-session cold path, RuntimeTypeHelper's nested-loop reflection is #if NETFRAMEWORK-gated legacy-only fallback already out of scope. 0 new HIGH/MEDIUM findings. Re-verified 0 open [efficiency-improver] PRs and re-checked #8824/#3495 for new human comments (none since 2026-07-14 and 2026-07-30 respectively) — not re-engaged per anti-spam policy. A broadened search for open performance/efficiency/energy/green software issues returned only the two already-tracked issues plus this tracker; all historically-filed [Efficiency Improver] perf: issues from May/August 2026 remain stale with no new activity.
Discovered Commands
| Command | Purpose |
|---|---|
./build.sh |
Full restore + build (installs SDK to .dotnet/ first) |
./build.sh -test |
Run unit tests |
./build.sh -pack |
Build + produce NuGet packages |
./build.sh -pack -test -integrationTest |
Full pipeline incl. acceptance tests |
.dotnet/dotnet build <proj>.csproj -c Debug -f <tfm> |
Build a single project directly once SDK is bootstrapped |
artifacts/bin/<Project>/Debug/<tfm>/<Assembly> (run directly) |
Run a built test-host binary — more reliable than dotnet test/dotnet run --project in this sandbox for filter flags |
<host> --filter "FullyQualifiedName~Name" |
vstest-style substring filter that works reliably against a built MTP test host in this sandbox |
dotnet format whitespace TestFx.slnx --verify-no-changes --include <file> |
Format verification (needs explicit TestFx.slnx workspace arg) |
Notes: repo-local SDK at .dotnet/dotnet (Arcade-provisioned, must bootstrap via ./build.sh first, ~5-6 min first time). Some internal classes are tracked by the PublicAPI analyzer via a separate InternalAPI/InternalAPI.Shipped.txt+.Unshipped.txt pair (distinct from PublicAPI/) for cross-assembly InternalsVisibleTo tests — this also applies to default-value changes on an already-shipped internal signature, not just full signature changes. Partial-TFM dotnet restore -p:TargetFramework(s)=net8.0 workaround corrupts sibling projects' project.assets.json — avoid; skip net462/net48-only test projects in this sandbox instead and document the gap.
Run History
2026-10-14 21:48 UTC - Run
- 🔍 Confirmed 0 open
[efficiency-improver]PRs. - 🔍 Reviewed 10 commits landed since 2026-10-13: #11927 (dependency/TFM bump), #11931 (pure structural dedup of failure-result construction, no behavior change), #11930/#11926 (CI workflow-only), #11919 (new ServerMode client library split into partial files — reviewed full implementation, no hot-path inefficiencies found, allocations proportional to necessary payload), #11912 (mutation-testing CI infra), plus OneLoc/dependency commits.
- 🔍 Delegated a fresh-code scan of
src/Package/MSTest.Sdk,src/TestFramework/TestFramework.Extensions, the newServerMode.Client.Sourceslibrary, andsrc/Platform/Microsoft.Testing.Platform/Hosts— 0 new HIGH/MEDIUM findings, all either cold-path/one-time or allocation proportional to real output. - 💬 Re-checked #8824/#3495 — no new human comments since last review; not re-engaged (anti-spam holds). Broadened search confirms no new efficiency/performance/energy/green-software-labeled issues; stale May/August 2026
[Efficiency Improver] perf:issues remain untouched. - No PR created this run (nothing new to measure).
2026-10-13 21:46 UTC - Run
- 🔍 Confirmed 0 open
[efficiency-improver]PRs. - 🔍 Reviewed 8 commits landed since 2026-10-12: #11917 (test-value-evidence tooling), #11916 (coverage improvements; the one product file touched,
EnvironmentVariables.cs, confirmed already correctly guarded withIsEnabled(LogLevel.Trace)), #11915 (affected-test-collection fix), #11906 (pure structural process-lifecycle file split), #11913 (test-only), plus OneLoc/dependency commits — none touching product hot paths. - 🔍 Re-examined 2 existing LOW backlog items (
RuntimeRegistrationEmitterresolve helpers,TestDataConnectionSql.SplitName) for promotion — both remain cold-path/bounded, declined. - 🔍 0 new HIGH/MEDIUM findings this run.
- 💬 Re-checked #8824/#3495 — no new human comments since last review; not re-engaged (anti-spam holds). Broadened issue search confirms no new efficiency/performance/energy/green-software-labeled issues beyond the two already tracked.
- No PR created this run (nothing new to measure).
2026-10-12 21:46 UTC - Run
- 🔍 Confirmed 0 open
[efficiency-improver]PRs. - 🔍 Reviewed 18 commits landed since 2026-10-11: #11896 (headless-Windows JSON-escaping correctness fix, cold discovery path), #11892 (new MSTEST0090 performance-advisory analyzer, already efficiently implemented), plus CI/tooling, test-coverage-only, and docs/dependency commits — none touching product hot paths.
- 🔍 0 new HIGH/MEDIUM findings this run.
- 💬 Re-checked #8824/#3495 — no new human comments since last review; not re-engaged (anti-spam holds). Broadened issue search confirms no new efficiency/performance/energy/green-software-labeled issues beyond the two already tracked.
- No PR created this run (nothing new to measure).
2026-10-11 21:49 UTC - Run
- 🔍 Confirmed 0 open
[efficiency-improver]PRs. - 🔍 Reviewed commits landed since 2026-10-10: only 1 product-code change (PR #11867,
TestHostControllersTestHostfile split) — confirmed via full diff review this is a pure structural refactor of cold-path process-lifecycle code (event-driven cancellation, once-per-session finalization), no hot loop, no efficiency opportunity. - 🔍 0 new HIGH/MEDIUM findings this run.
- 💬 Re-checked #8824/#3495 — no new human comments; not re-engaged (anti-spam holds).
- No PR created this run.
2026-10-10 21:45 UTC - Run
- 🔍 Confirmed zero new commits on
mainsince the 2026-10-09 run — genuinely idle window. - 🔍 Confirmed 0 open
[efficiency-improver]PRs. - 💬 Re-checked #8824/#3495 — no new human comments; not re-engaged.
- No PR created this run.
🤖 Automated content by GitHub Copilot. Generated by the Efficiency Improver workflow. · copilot · auto · 188.8 AIC · ⌖ 15.2 AIC · ⊞ 21.6K · [◷]( · ◷)
Add this agentic workflow to your repo
To install this agentic workflow, run
gh aw add githubnext/agentics/workflows/efficiency-improver.md@main
- Dominant language
- C#
- Stars
- 1k
- Forks
- 314
- Avg merge
- 9h 17m
- Merged PRs (30d)
- 436
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from microsoft/testfx
-
type/automation type/tech-debt
Difficulty 3/5 Half a day Newbie friendliness 45/100
Maintainers usually reply within 1 day
-
type/automation type/tech-debt
Difficulty 4/5 3-5 days Newbie friendliness 25/100
Maintainers usually reply within 1 day
-
[quality-improver] AOTSG0001–AOTSG0005 (AOT reflection source generator) diagnostics have no HelpLinkUri, unlike MSTEST0xxx rulesPossibly taken @Evangelink claimed this 1 day ago. Opentype/automation type/tech-debt
Difficulty 3/5 1-2 days Newbie friendliness 40/100
microsoft/testfx#11920 · 1 reaction · 2 assignees ·
Maintainers usually reply within 1 day
-
area/server-mode-jsonrpc
Difficulty 5/5 Over a week Newbie friendliness 8/100
Maintainers usually reply within 1 day
-
testing type/automation type/test-gap
Difficulty 2/5 1-3 hours Newbie friendliness 20/100
Maintainers usually reply within 1 day
All issues in microsoft/testfx
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
Maintainers usually reply within 7 days
-
Difficulty 1/5 Under an hour Newbie friendliness 65/100
vchelaru/FlatRedBall2#1481 ·
Maintainers usually reply within 1 day
-
ai-chat bug trivial
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
Maintainers usually reply within 1 day
-
area-signalr
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
dotnet/aspnetcore#69842 · 1 comment ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
AzureAD/microsoft-identity-web#4099 ·
Maintainers usually reply within 1 day