Skip to content

[perf-improver] Monthly Activity 2026-08 #10381

Description

@github-actions

Activity for August 2026

Suggested Actions for Maintainer

No suggested actions at this time.

Performance Opportunities Backlog

  • PrivateObject.Helpers.cs BuildGenericMethodCacheForType: rebuilds cache per instance (net-framework-only path), not shared across instances of same type. Medium risk, low priority - not fixed.
  • TestExecutionManager.ParallelExecution.cs: wraps each test element into a new array per test for scheduling; inherent to chunking design, medium risk/effort - not fixed.
  • Microsoft.Testing.Platform/Configurations/AggregatedConfiguration.cs: linear provider scan per lookup; low impact, not fixed.
  • ServerTestHost.RequestExecution.cs: .Select().ToArray() on testNodes, once per run request (not per-test) - low priority, not fixed.
  • RetryArtifactProcessor.cs: GroupBy/Any(Count()) double-enumeration, only matters with many retries+artifacts (low volume) - not fixed.

Codebase remains thoroughly optimized after many scan passes; most prior findings have been fixed and merged (see Run History).

Discovered Commands

./build.sh                              # restore + build (Debug)
./build.sh -test                        # build + unit tests
./build.sh -pack                        # produce NuGet packages
./build.sh -pack -test -integrationTest # full suite (slow)
# SDK bootstrapped via ./build.sh into .dotnet/
# Note: MSTestAdapter.UnitTests and other net48-targeting tests can't run on Linux (no .NET Framework SDK)

Run History

2026-08-31 13:37 UTC - Run

  • 🔍 Task 2: explore-agent scan of MSTestAdapter.PlatformServices/Services, remaining StringAssert/CollectionAssert internals, Telemetry (remaining files), TestHost/Hosts per-test-node dispatch, Framework invocation loop, Discovery (AssemblyEnumerator/TypeEnumerator) - all confirmed cold/startup/failure-path or already optimized; no new hot-path findings
  • 📊 Task 4: no open PRs with "[perf-improver]" title prefix (checked open PRs list)
  • 📊 Task 5: no open performance-labeled issues found (search_issues 0 results)
  • 📊 Noted PR Add benchmarks for data source display names #10889 "Add benchmarks for data source display names" (maintainer's own PR, continuing prior perf-improver benchmark work from Add reproducible MSTest performance benchmarks #10843) is open with green state/needs-review label - not perf-improver's own PR, no action needed

2026-08-30 13:33 UTC - Run

  • 📊 Confirmed prior draft PR "Add benchmark coverage for TestDataSourceUtilities display-name computation" merged as Add reproducible MSTest performance benchmarks #10843 ("Add reproducible MSTest performance benchmarks")
  • 🔍 Task 2: explore-agent scan of TestMethodAttributes/Execution path, Discovery, Platform/Framework invocation, non-terminal OutputDevices, MessageBus, Assertions (ThrowsExactlyAsync/CollectionAssert) - all confirmed already optimized; no new hot-path findings
  • 📊 No open perf-improver PRs or performance-labeled issues this run

2026-08-29 13:31 UTC - Run

  • 🔍 Task 6: assessed measurement infra - TestDataSourceUtilities.ComputeDefaultDisplayName had no dedicated benchmark
  • 🔧 Created draft PR: "Add benchmark coverage for TestDataSourceUtilities display-name computation" (branch perf-assist/testdatasource-benchmark)
  • 📊 Verified: ./build.sh -c Release succeeded; ran new benchmark (short job) - 448.5ns/768B and 437.8ns/792B

2026-08-28 17:31 UTC - Run

  • 🔍 Scanned Platform Services/Helpers/Capabilities, Adapter reflection, remaining Assert helpers, Analyzers Helpers - no new hot-path findings

2026-08-27 - Run

  • 🔍 Scanned HtmlReport/AzureDevOpsReport, CrashDump/HangDump, Configurations, Logging, Assertions, Adapter Execution - no new findings

2026-08-26 - Run

  • 🔍 Scanned PlatformServices reflection helpers, Hosts, CommandLine, Requests, MSTest.Sdk, Analyzers codefixes - no new findings

2026-08-25 - Run

  • 🔍 Scanned PlatformServices Utilities, Hosts, Requests, Assertions, Retry, MSBuild extension - minor low-priority items noted (ServerTestHost Select+ToArray, RetryArtifactProcessor GroupBy/Count)

2026-08-24 - Run

  • 🔍 Scanned Adapter ObjectModel/Utilities, PlatformServices Services/Utilities, TestHost/Requests, TrxReportEngine, Assertions - no new findings

2026-08-23 - Run

  • 🔍 Scanned Extensions/ArtifactPostProcessing, Helpers, OutputDevice/Terminal, SourceGeneratedReflectionOperations, CollectionAssert, Adapter reflection - no new findings
  • 📌 Noted maintainer PR Reduce ServerMode notification allocations #10670 "Reduce ServerMode notification allocations" continuing prior perf-improver work

2026-08-22 - Run

  • 🔍 Identified opportunity: LINQ Select+ToList(object) / Where in ServerMode TestNodeSerializers/TestNodeStateChangeAggregator per-notification hot path
  • 🔧 Created PR: "Avoid LINQ allocations on ServerMode per-notification hot path" (branch perf-assist/testnode-changes-serialize-loop)
  • 📊 Measured: 8-item array, 2M iters - 447ms/320.4MB alloc -> 205ms/228.9MB alloc (~54% faster, ~29% less alloc)

2026-08-21 - Run

  • 🔍 Scanned Retry, MSBuild, HotReload, Telemetry, TestFramework.Extensions - confirmed clean, one false-positive investigated and ruled out

2026-08-20 - Run

  • 🔍 Scanned Assert success-paths, OutputDeviceManager, TestResultMessagesSerializer, ReflectionOperations, TreeNodeFilter - no new findings

2026-08-19 - Run

  • 🔍 Scanned IPC, TRX/CTRF/JUnit writers, MSTest.TestAdapter, Assert.cs core - confirmed already well-optimized

2026-08-18 - Run

2026-08-16 - Run

  • 🔍 Scanned Adapter Execution, Platform Hosting/Extensions, Configurations, CollectionAssert/StringAssert - no significant new findings

2026-08-15 - Run

  • 🔍 Scanned PlatformServices/Services, Assertions, Platform Requests/Messages, Logging - no new findings

2026-08-14 - Run

Comment /perf-assist to run again

Add this agentic workflow to your repo

To install this agentic workflow, run

gh aw add githubnext/agentics/workflows/perf-improver.md@main

Closing out August 2026 activity — continued in the September 2026 Monthly Activity issue.> 🤖 Automated content by GitHub Copilot. Generated by the Perf Improver workflow. · auto · 84.4 AIC · ⌖ 2.2 AIC · ⊞ 18.7K · [◷]( · )

Comment /perf-assist to run again

Add this agentic workflow to your repo

To install this agentic workflow, run

gh aw add githubnext/agentics/workflows/perf-improver.md@main

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/performanceRuntime / build performance / efficiency.type/automationCreated or maintained by an agentic workflow.

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions