Profile

SkillDev tools

Lets your agent profile FalkorDB performance with flamegraphs and benchmark runs to find slowdowns.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the Profile skill

About this capability

Profile FalkorDB performance - generate samply flamegraphs and run the benchmark suite. Use when investigating a performance regression/bottleneck or comparing benchmark results. For code-coverage reports use the coverage skill.

What this skill tells your AI

The instructions your AI receives, as published by falkordb/falkordb in .claude/skills/profile/SKILL.md and read by ahel’s review.

1. Flamegraphs with samply

For finding performance bottlenecks in query execution (full reference: docs/profiling.md):

cargo install samply                              # one-time
# [profile.release] has `debug` commented out in Cargo.toml, so a plain
# --release build has no line info. Add debuginfo for readable flamegraphs:
RUSTFLAGS="-C debuginfo=2" cargo build --release

# record redis-server with the module loaded, run your query/workload
# against it, then stop the server
samply record redis-server --loadmodule ./target/release/libfalkordb.dylib

On stop, samply opens the Firefox Profiler UI in your browser. Use libfalkordb.so on Linux.

2. Benchmark suite

Use the per-query harness in bench/ — see the bench skill for the full loop and bench/README.md for the details. In short:

cargo build --release
uv sync --project bench                        # once
uv run --project bench bench measure           # 317 queries -> bench/results/current.csv
uv run --project bench bench compare           # regression gate vs your own baseline

To profile one benchmark query rather than a workload you drive by hand, bench profile "<query name>" records the server with samply while that query runs in a loop — it reuses the harness's own server, so you name the query once.

In CI, labelling a PR benchmark-cov runs the same harness against the PR and its base and posts a per-query comparison, plus deterministic callgrind instruction counts (.github/workflows/benchmark-cov.yml). Those counts are PR-vs-base only — the C engine cannot be measured under callgrind, because it busy-waits on a worker thread valgrind schedules arbitrarily; the vs-C comparison runs on allocated bytes instead. It is on-demand only, so a suspected regression is compared against the PR base rather than against a stored series.

Treat samply flamegraphs above as the primary tool for locating a bottleneck and bench/ for quantifying it.

Notes

  • For line/region/function code-coverage reports (LLVM instrument-coverage, lcov, devcontainer/docker flow) see the coverage skill.

Signals

GitHub stars
6k
Forks
460
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
profile-falkordb
Source
github.com/falkordb/falkordb