aspnet/benchmarks/crank-benchmarks
- community
Checking that the SKILL.md file is still in the repository.
Build, review, and troubleshoot crank benchmark commands for aspnet/Benchmarks and custom scenarios. Use when configuring multi-agent benchmark runs (`application`/`db`/`load`), selecting `--scenario` and `--profile` combinations, adding diagnostics (counters/traces/dumps), pinning .NET versions/commits, and saving comparable benchmark outputs with `--json`.
Install
npx vskill@latest install aspnet/benchmarks/crank-benchmarksSKILL.md
Crank Benchmarks
Overview
Use this skill to produce reliable crank commands, explain profile/scenario wiring, and capture comparable results across repeated runs. Default to framework-band targeting (--application.framework) and persisted JSON output unless the user asks for deeper pinning.
Workflow
- Identify benchmark intent (scenario, scale, target machines, diagnostics).
- Resolve required configs and profile mappings before assembling command arguments, preferring predefined profile groups when available.
- For regression investigations, validate version availability from package feeds before running:
- Query the relevant flat-container index (for example
.../flat2/microsoft.netcore.app.runtime.linux-x64/index.json) to list actually published versions. - Cross-check benchmarked versions vs published versions to detect missing intermediate builds.
- For each candidate intermediate version, fetch the package
.nuspecand read<repository ... commit=\"...\">to map the version to a concretedotnet/dotnetcommit. - Use these commit anchors to reduce and prioritize culprit ranges even when some benchmark runs are missing.
- Build a single canonical command line with:
--configfiles- one
--scenario - required
--profilevalues for each role - optional diagnostics and optional version-pinning switches (for regression reproduction)
- optional git source pinning with
--application.source.branchOrCommit --json <output.json>for persisted results
- Validate command completeness against scenario roles (
application, optionaldb,load). - Produce follow-up compare commands when prior JSON files are available.
Installing and updating crank
Crank is a .NET global tool and needs the .NET SDK and git. Only the controller (crank) is needed to run benchmarks against existing agents (including the gold machines through relay profiles); Microsoft.Crank.Agent is only for hosting your own agent.
For a local agent, do the same with Microsoft.Crank.Agent and run crank-agent. Check the installed version with dotnet tool list -g before troubleshooting unexpected option errors; update if it is outdated. Docs: https://github.com/dotnet/crank/blob/main/docs/getting_started.md
Quick-start example
Minimal APIs JSON (TechEmpower) on the Linux gold machines:
The Platform variant uses --config .../scenarios/platform.benchmarks.yml instead; see references/techempower-scenarios.md.
Defaults and guardrails
Follow these defaults unless the user asks otherwise:
- Keep one explicit
--scenario. - Prefer one deterministic profile group (for example
aspnet-gold-linoraspnet-gold-win, defined inscenarios/aspnet.profiles.standard.yml) before role-specific profile tuples. - When the user is not on the benchmark network (or says relay), use the
-relaytwin of the profile together with--relay(bare--relayauthenticates viaaz login); seereferences/techempower-scenarios.md. - Include exactly the profiles needed to satisfy scenario roles and machine placement.
- Add
--json <file>for every run meant to be compared later. - Use
--application.framework net10.0|net11.0as the normal version selector; pin SDK/runtime/aspnetcore versions only when reproducing a .NET regression. - When pinning versions for regressions, prefer versions confirmed in package feed indexes rather than assuming all CI build labels were published.
- If benchmark history skips versions, fetch
.nuspecmetadata for missing versions to map to source commits before narrowing culprit changes. - When using a git-based benchmark source, use
--application.source.branchOrCommit <branch_name>or--application.source.branchOrCommit #<commit_hash>to target specific code. - Add
--application.collectDependencies trueonly for CI transitive dependency analysis. - Add
build/azure.profile.ymlonly when Azure machines/relay/auth-specific profiles are required. - Prefer additive diagnostics (
--*.collectCounters, traces, dumps) over changing scenario behavior. - If result comparison is requested, include
--compare <prior.json>arguments or a follow-upcrank comparestep.
Reference loading
Read references based on task:
references/api_reference.mdfor command argument semantics and repeatable command templates.references/profiling-and-traces.mdfor CPU profiles, dotnet-trace/perf traces, counters and dumps.references/techempower-scenarios.mdfor the TechEmpower Minimal APIs and Platform plaintext/json/fortunes scenarios, their config files, and CI trend names.
Output expectations
- Return a final crank command that is directly runnable.
- Include short rationale for each
--profileselected. - Call out when optional version pins are intentionally omitted or included.
- Include output filenames for JSON persistence and comparison readiness.
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewNot runA model review is scheduled for the next rescan.
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingplugins/crank-benchmarks/skills/crank-benchmarks/SKILL.md
Popularity
- Repository stars
- 1,192
- Repository forks
- 244
- 7-day trend score
- 0
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/aspnet/benchmarks/crank-benchmarks)