Skip to content

[efficiency-improver] Monthly Activity 2026-09 #10917

Description

@github-actions

Efficiency Improver — Monthly Activity 2026-09

Suggested Actions

None pending.

Energy Efficiency Backlog

Item Focus Area Priority Status
Assert.That.cs condition.Compile() per-call overhead Code-Level MEDIUM Deferred — architecturally risky (expression-tree design intentional for diagnostics)
Assert.InverseAssertions.cs ContainsCore LINQ .Any(predicate) Code-Level LOW Deferred — marginal, not yet actioned

Discovered Commands

  • Build (Debug): ./build.sh
  • Build single project: dotnet build <path>.csproj -c Debug (after sourcing .dotnet SDK via ./build.sh once)
  • Unit tests: ./build.sh -test
  • Full suite incl. acceptance/integration: ./build.sh -pack -test -integrationTest
  • Targeted test run: dotnet run --project test/UnitTests/<Project> -f net8.0 --no-build -c Debug -- --treenode-filter "/*/*/*/<Class>/*"
  • Format check: dotnet format whitespace <project>.csproj --verify-no-changes (note: repo has pre-existing CHARSET/BOM lint noise unrelated to any single change — verify before assuming a regression)

Run History

2026-09-02 09:xx UTC - Run

  • Reviewed memory, confirmed 0 open [efficiency-improver] PRs (Task 4 clear) and no new actionable efficiency/performance issues (Task 5).
  • Scanned src/TestFramework/TestFramework/Assertions/ for opportunities. Found Assert.IsNotEmpty still used .Any()/.Cast<object>().Any() instead of the ICollection/ICollection<T> .Count fast-path already applied to Assert.HasCount/Assert.IsEmpty in Optimize non-generic collection count assertions #10575 — it had simply been missed from that earlier pass.
  • Implemented the fast-path, measured allocations (GC.GetAllocatedBytesForCurrentThread(), net8.0 Release, 1M iterations): non-generic Cast<object>().Any() path went from 104 B/call to 0 B/call. Generic IEnumerable<T>/List<T> path was already 0 B/call on net8.0, but the change is a defensive win for the repo's netstandard2.0/net462 targets.
  • Verified build across all 4 TFMs and ran the full TestFramework.UnitTests suite: 1548/1548 passed.
  • Opened draft PR "Optimize Assert.IsNotEmpty to avoid enumerator allocation" (branch efficiency/isnotempty-collection-count-fastpath).

2026-09-01 21:49 UTC - Run

  • Month rollover: closed prior August summary issue, opened this tracker.
  • Scanned src/Analyzers/MSTest.Analyzers.CodeFixes/ and src/Package/MSTest.Sdk for drift — none found (only reformat/doc commits since last review).
  • Confirmed Microsoft.Testing.Extensions.CodeCoverage does not exist in this OSS checkout (closed-source component) — removed from future scan candidates.
  • Reviewed ~35 commits since 2026-08-31 — all maintainer/Copilot infra/feature/dependency work, no efficiency regressions spotted.
  • Pure monitoring pass — no PR created (14th+ consecutive monitoring-only run at that point).> [!WARNING]
Firewall blocked 1 domain

The following domain was blocked by the firewall during workflow execution:

  • southcentralus0.in.applicationinsights.azure.com

To allow these domains, add them to the network.allowed list in your workflow frontmatter:

network:
  allowed:
    - defaults
    - "southcentralus0.in.applicationinsights.azure.com"

See Network Configuration for more information.

🤖 Automated content by GitHub Copilot. Generated by the Efficiency Improver workflow. · auto · 244.9 AIC · ⌖ 10.7 AIC · ⊞ 20.5K · [◷]( · )

Add this agentic workflow to your repo

To install this agentic workflow, run

gh aw add githubnext/agentics/workflows/efficiency-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

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions