BE

benchmarking

Facilitates performance benchmark execution and data analysis in Nanvix.

Install

mkdir -p .claude/skills/benchmarking-nanvix && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/18492" && unzip -o skill.zip -d .claude/skills/benchmarking-nanvix && rm skill.zip

Installs to .claude/skills/benchmarking-nanvix

Activation

This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.

Guide for building, running, and analyzing Nanvix performance benchmarks. Use this when asked about benchmark setup, execution, or interpretation.
146 chars✓ has a “when” trigger
Intermediate

Key capabilities

  • Build Nanvix with panic-level logging
  • Run specific performance benchmarks
  • Pin components to different CPU cores
  • Increase system limits for high-iteration runs
  • Visualize benchmark results
  • Analyze benchmark data with automation scripts

How it works

This skill guides the process of building Nanvix for benchmarking, running various performance tests, and analyzing the results using provided scripts.

Inputs & outputs

You give it
Nanvix source code, benchmark configuration JSON
You get back
Performance metrics for boot time, VFS latency, or network throughput

When to use benchmarking

  • Measure system boot time
  • Compare snapshot restore speed
  • Analyze TCP echo latency

About this skill

Benchmarking Nanvix

Use this skill when the user asks about running, creating, or analyzing performance benchmarks in Nanvix.

Benchmark Tool

Nanvix includes nanvix-bench (src/utils/nanvix-bench/) for measuring system performance. Benchmarks require a release build with panic-level logging.

Building for Benchmarks

./z build -- all RELEASE=yes LOG_LEVEL=panic

Available Benchmarks

BenchmarkDescription
boot-timeStart a user VM without nanvixd
cold-startSpawn nanvixd + VM + first echo round trip
cold-start-uvmStart a user VM + first gateway echo
snapshot-restoreCompare snapshot restore with cold boot
vfs-benchMeasure guest VFS operation latency
warm-start-gatewayRound-trip latency through the VM gateway
warm-start-vmmRaw round-trip latency inside the user VM
warm-start-socketTCP echo latency through guest networking

Running Benchmarks

# Basic usage.
./bin/nanvix-bench.elf -benchmark cold-start
./bin/nanvix-bench.elf -benchmark cold-start-uvm
./bin/nanvix-bench.elf -benchmark warm-start-gateway
./bin/nanvix-bench.elf -benchmark warm-start-vmm
./bin/nanvix-bench.elf -benchmark warm-start-socket

# See all options.
./bin/nanvix-bench.elf -help

Core Pinning (Recommended)

For best performance, pin components to different CPU dies. Create a JSON config:

{
    "client_core_str": "0-9"
}

Then pass it to the benchmark:

./bin/nanvix-bench.elf \
    -benchmark <benchmark> \
    -hwloc <path_to_config.json>

High-Iteration Runs

For benchmarks with many iterations, increase system limits:

ulimit -u 65536    # Max user processes.
ulimit -n 65536    # Max open files.

Benchmark Applications

Source code for benchmark programs:

Benchmark AppPathLang
echo-rust-nostdsrc/benchmarks/echo-rust-nostd/Rust
noop-rust-nostdsrc/benchmarks/noop-rust-nostd/Rust

Analyzing Results

Benchmark results can be visualized with the plotting script:

python3 scripts/plot-performance.py

Additional analysis can be done with the automation script:

python3 scripts/benchmark.py

Benchmarking on Windows

On Windows, the cold-start benchmark spawns a fresh nanvixd process per iteration and measures the time from process spawn to the first echo round trip.

Building

.\z.ps1 build -- all RELEASE=yes LOG_LEVEL=panic

Available Benchmarks

BenchmarkDescription
boot-timeStart a user VM (no nanvixd)
cold-startSpawn nanvixd + VM + echo round-trip
cold-start-uvmStart a user VM + first gateway echo
snapshot-restoreMeasure snapshot restore latency vs boot-time
warm-start-gatewayRound-trip latency through the VM gateway
warm-start-vmmRaw round-trip latency inside the user VM

Running

# Using z.ps1.
.\z.ps1 bench -- -benchmark cold-start -iterations 10

# Or directly.
.\bin\nanvix-bench.exe -benchmark cold-start -iterations 10
.\bin\nanvix-bench.exe -benchmark boot-time -iterations 100
.\bin\nanvix-bench.exe -help

Use -help to list all benchmark options supported by the current build.

When not to use it

  • When not working with Nanvix
  • When performance benchmarks are not required
  • When a release build with panic-level logging is not desired

Limitations

  • Requires a release build with panic-level logging for benchmarks
  • Core pinning requires a JSON configuration file
  • High-iteration runs require increasing system limits

How it compares

This skill provides a structured approach to Nanvix performance benchmarking, including specific build configurations and analysis tools, which is more efficient than manual, ad-hoc testing.

Compared to similar skills

benchmarking side by side with the closest alternatives in the catalog.

SkillInstallsUpdatedSafetyDifficulty
benchmarking (this skill)017dReviewIntermediate
agent-performance-benchmarker35moNo flagsAdvanced
find-hypertable-candidates13moNo flagsIntermediate
run-rust-benchmarks11moReviewIntermediate

Try saying

Example prompts that trigger this skill in your AI assistant.

You might also like

agent-performance-benchmarker

ruvnet

Agent skill for performance-benchmarker - invoke with $agent-performance-benchmarker

315

find-hypertable-candidates

timescale

Use this skill to analyze an existing PostgreSQL database and identify which tables should be converted to Timescale/TimescaleDB hypertables. **Trigger when user asks to:** - Analyze database tables for hypertable conversion potential - Identify time-series or event tables in an existing schema - Evaluate if a table would benefit from Timescale/TimescaleDB - Audit PostgreSQL tables for migration to Timescale/TimescaleDB/TigerData - Score or rank tables for hypertable candidacy **Keywords:** hypertable candidate, table analysis, migration assessment, Timescale, TimescaleDB, time-series detection, insert-heavy tables, event logs, audit tables Provides SQL queries to analyze table statistics, index patterns, and query patterns. Includes scoring criteria (8+ points = good candidate) and pattern recognition for IoT, events, transactions, and sequential data.

18

run-rust-benchmarks

RediSearch

Run Rust benchmarks and compare performance with the C implementation

15

perplexity-cost-tuning

jeremylongshore

Optimize Perplexity costs through tier selection, sampling, and usage monitoring. Use when analyzing Perplexity billing, reducing API costs, or implementing usage monitoring and budget alerts. Trigger with phrases like "perplexity cost", "perplexity billing", "reduce perplexity costs", "perplexity pricing", "perplexity expensive", "perplexity budget".

02

clay-performance-tuning

jeremylongshore

Optimize Clay API performance with caching, batching, and connection pooling. Use when experiencing slow API responses, implementing caching strategies, or optimizing request throughput for Clay integrations. Trigger with phrases like "clay performance", "optimize clay", "clay latency", "clay caching", "clay slow", "clay batch".

01

clerk-cost-tuning

jeremylongshore

Optimize Clerk costs and understand pricing. Use when planning budget, reducing costs, or understanding Clerk pricing model. Trigger with phrases like "clerk cost", "clerk pricing", "reduce clerk cost", "clerk billing", "clerk budget".

10

Search skills

Search the agent skills registry