agentleFS
dotnetdotnet/orleans/.github/skills/review-performance/SKILL.md

review-performance

Skill11k starsChanged yesterdayMITView on GitHub

Performance lens for Orleans — back-of-envelope cost estimates, bottleneck identification, batching, control/data plane separation, and GC-aware hot paths in messaging, serialization, scheduling, and per-activation state. Use during code review, and when designing or implementing performance-sensitive code.

We split this skill into the rules it gives an agent

2 rules. 0 are common, 2 are distinctive, and 0 are very specific to this project.

  • 0

    Common

    Most of the 6 edited versions we read keep these.

  • 2

    Distinctive

    This author's own choices. Worth a look.

  • 0

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Prefer design-level wins (batching, control/data plane separation, locality) to micro-optimizations.

    line 16
  2. Distinctive:

    Keep correctness and simplicity intact.

    line 18

“Common” is measured: kept by at least 6 in 10 of the 6 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Performance lens

Apply with root AGENTS.md, including its allocation and retained-memory guidance. This lens examines resource cost: network, disk, memory, and CPU, each by bandwidth and latency.

Procedure

  1. For performance-sensitive changes (hot paths, per-message or per-activation state, scale-dependent work), estimate the dominant costs at realistic counts of activations, messages per second, and silos.
  2. Identify the slowest resource on the path, weighted by frequency.
  3. Prefer design-level wins (batching, control/data plane separation, locality) to micro-optimizations.
  4. Support performance claims with comparable before-and-after measurements: BenchmarkDotNet projects under test/Benchmarks for local code paths, and load or integration measurements for distributed behavior.
  5. Keep correctness and simplicity intact; a faster design that weakens an invariant is a regression.

Checklist

  • Back-of-envelope at design time. The largest wins come from design, so new designs and scale-dependent changes start from an estimate of network, disk, memory, and CPU cost.
  • Slowest resource first. Effort goes to the few bottleneck operations, identified by measurement and weighted by frequency.
  • Tail latency. Fan-out and background contention are evaluated through end-to-end latency percentiles under representative load (The Tail at Scale).
  • Bounded speculation. Retries and hedges share explicit attempt, concurrency, and time budgets with the original request; duplicate execution and work continuing after cancellation preserve the operation's contract.
  • Batch. Per-operation overhead (storage writes, messages, directory operations) is amortized across batches where latency, ordering, and partial-failure semantics permit.
  • Separate planes. Control-plane work (membership, directory, placement) stays out of per-message and per-turn paths, which use cached decisions with defined refresh.
  • Run at your own pace. A component that receives external events processes them in batches at its own rate, rather than doing full work per event as it arrives, where latency permits.
  • Simple algorithms for small N. Where N is small in practice (per-activation collections, silo counts), the simplest algorithm wins; scale-dependent N (activations, messages, subscriptions) justifies better complexity.
  • GC-aware hot paths. On hot paths (messaging, serialization, scheduling), avoidable steady-state allocations are removed with pooled buffers, pre-sized collections, Span<T>, and structs where measurement shows net benefit.

Findings

Report findings ordered by expected impact, each with the location, a cost estimate or measurement with its stated assumptions, and a concrete fix.

Download now (ZIP)

Trending

More talk lately.about the whole repository

Dec 2025: 0 mentionsJan 2026: 0 mentionsFeb 2026: 3 mentionsMar 2026: 0 mentionsApr 2026: 7 mentionsMay 2026: 0 mentionsJun 2026: 0 mentionsJul 2026: 5 mentionsAug 2026: 0 mentionsSep 2026: 11 mentionsOct 2026: 5 mentionsNov 2026: 0 mentions
Dec 2025Jun 2026Nov 2026
Mentions a month of the dotnet/orleans repository that our weekly crawl found. There is no adoption data for this file yet.

Who's talking about dotnet/orleans

The biggest 5 of 90 mentions linking to the repository that our crawl found. Each line is their own headline.

See all 90

Talked about on GitHub, Stack Overflow, Hacker News and the web (90 times).

On GitHub · 50

45 more on GitHub

On Stack Overflow · 30

25 more on Stack Overflow

On the web · 1

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.