agentleFS
datafusion-contribdatafusion-contrib/datafusion-distributed/.agents/skills/benchmark/SKILL.md

benchmark

Skill172 starsChanged 9 days agoApache-2.0View on GitHub

Run, compare and profile the local dfbench benchmarks (TPC-H, TPC-DS, ClickBench, over Parquet or Iceberg). Use when asked to benchmark a change, compare branches or flag configurations, verify a performance claim, or find where time goes.

  • Installs packages

95 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use ios-clean, ios-fix and 10 more.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • Saqlain-811Skill

    ios-clean

    Remove the DebugBridge SPM package and all #if DEBUG wiring from an iOS app. (gstack)

    Also in 5 projects that use this

  • Saqlain-811Skill

    ios-fix

    Autonomous iOS bug fixer. (gstack)

    Also in 5 projects that use this

  • seek888Skill

    pair-agent

    Pair a remote AI agent with your browser. One command generates a setup key and prints instructions the other agent can follow to connect. Works with OpenClaw, Hermes, Codex, Cursor, or any agent that can make HTTP requests. The remote agent gets its own tab with scoped access (read+write by default, admin on request). Use when asked to "pair agent", "connect agent", "share browser", "remote browser", "let another agent use my browser", or "give browser access". (gstack) Voice triggers (speech-to-text aliases): "pair agent", "connect agent", "share my browser", "remote browser access".

    Also in 11 projects that use this

  • ShreyRaviSkill

    landing-report

    Read-only queue dashboard for workspace-aware ship. Shows which VERSION slots are currently claimed by open PRs, which sibling Conductor workspaces have WIP work likely to ship soon, and what slot /ship would pick next. No mutations — just a snapshot. Use when asked to "landing report", "what's in the queue", "show me open PRs", or "which version do I claim next". (gstack)

    Also in 8 projects that use this

  • timurgaleevSkill

    document-generate

    Generate missing docs for a feature, module or project as tutorials, how-tos, reference and explanation.

    Also in 7 projects that use this

  • seek888Skill

    open-gstack-browser

    Launch GStack Browser — AI-controlled Chromium with the sidebar extension baked in. Opens a visible browser window where you can watch every action in real time. The sidebar shows a live activity feed and chat. Anti-bot stealth built in. Use when asked to "open gstack browser", "launch browser", "connect chrome", "open chrome", "real browser", "launch chrome", "side panel", or "control my browser". Voice triggers (speech-to-text aliases): "show me the browser".

    Also in 8 projects that use this

  • +1 more from Saqlain-811
  • Other versions95 projects use a version of this.

    Word for word · 0

    None found.

    Edited · 0

    None found.

    Wrote their own version · 95

    1. garrytan/gstack★ 141ksame name
    2. dragonflydb/dragonfly★ 32ksame name
    3. xtermjs/xterm.js★ 21ksame name
    4. udecode/plate★ 17ksame name
    5. Z3Prover/z3★ 13ksame name
    6. androidx/androidx★ 6.1ksame name
    7. samchon/typia★ 6ksame name
    8. PaddlePaddle/FastDeploy★ 3.7ksame name
    9. zalando/skipper★ 3.3ksame name
    10. samchon/nestia★ 2.2ksame name

    85 more not listed

    How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.

  • In this repository4 other files it gives its agents.

The file

Files
SKILL.md

Benchmarking DataFusion Distributed

What counts as evidence for a performance claim is defined in docs/source/contributor-guide/04-benchmarks.md.

Running

cargo build -p datafusion-distributed-benchmarks --release
DATASET=$(target/release/dfbench prepare-tpch --scale-factor 10)   # only the path goes to stdout
target/release/dfbench run --dataset $DATASET --workers 8 -i 5

dfbench run --help lists all options.

Iceberg

The same benchmarks run over Iceberg tables with the dfbench-iceberg binary, which takes the same run options:

cargo build -p datafusion-distributed-iceberg-benchmarks --release
ICEBERG=$(target/release/dfbench-iceberg prepare --input $DATASET)
target/release/dfbench-iceberg run --dataset $ICEBERG --workers 8 -i 5
target/release/dfbench compare $DATASET $ICEBERG                     # Parquet vs Iceberg results

prepare converts an existing Parquet dataset; converting into a complete dataset is a no-op, so remove the Iceberg copy after regenerating its source. Iceberg runs always load manifest column statistics. See benchmarks/README.md for S3 output and other options.

Things worth knowing

  • Datasets live in testdata/<suite>_<format>/<key>=<value>/... directories that record every generation parameter; prepare-* prints the absolute path, and --dataset takes it absolute or relative to the current directory. Generating a complete dataset again is a no-op; an interrupted one must be removed before regenerating. Layout options (--max-file-size, --dictionary, --sorted) are listed in benchmarks/README.md.
  • DuckDB and Spark treat the key=value directories as Hive partitions and add them as columns; pass hive_partitioning=false when inspecting files with DuckDB.
  • Query ids are q1, q18, … (-q q1,q18). An unknown id silently runs nothing.
  • --workers N runs N localhost workers in the same process and Tokio runtime as the runner, so a profiler attached to dfbench sees everything.
  • Each run stores results under testdata/<dataset>/.results/<current git branch>/ and compares against the previous run. Running on main overwrites main's baseline.
  • Background load (other builds or tests, indexing) skews results heavily. Check it before trusting numbers, and alternate the sides of a comparison over several rounds.
  • CPU profiles: record with samply and query them from the terminal with Mozilla's profiler-cli (npm install -g @firefox-devtools/profiler-cli@latest; run profiler-cli guide first):

    samply record --save-only -o /tmp/x.json.gz "$PWD"/target/release/dfbench run --dataset $DATASET ...
    profiler-cli load /tmp/x.json.gz --with-samply

    The profile stores the binary path as given, and --with-samply resolves symbols from it, so use an absolute path (the same applies to dfbench-iceberg) or its frames show up as bare addresses.

    Workers share Tokio's threads, so select all busy tokio-rt-worker threads at once (profiler-cli thread select t-1,t-2,...) to see the whole process.

Download now (ZIP)

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.