Nanobench

nanoBench runs small microbenchmarks on recent Intel and AMD x86 processors.

github.com/andreas-abel/nanoBench
Nanobench homepage screenshot

About Nanobench

nanoBench is a Linux-based, open-source tool for running small microbenchmarks on recent Intel and AMD x86 CPUs. The microbenchmarks are evaluated with hardware performance counters that are read with minimal overhead, and instruction sequences are unrolled and reported as averages per copy. It is used to produce the latency, throughput and port usage data published on uops.info.

Two variants exist. The user-space implementation benchmarks ordinary code; the kernel module can additionally benchmark privileged instructions, use uncore performance counters, and disable interrupts and preemptions during measurement for potentially more accurate results. The repository warns that allowing arbitrary code to run in kernel space is risky, so the kernel module should not be used on a production system.

Key features

  • Benchmarks short assembler code sequences supplied with the -asm option
  • Reads hardware performance counters with minimal measurement overhead
  • Separate user-space implementation and loadable kernel module
  • Kernel module supports privileged instructions and uncore performance counters
  • Example configuration files for recent Intel and AMD microarchitectures
  • Wrapper scripts, plus a Python wrapper for the kernel module
Best for: Developers and researchers who need low-overhead microbenchmarks of instruction sequences on recent Intel and AMD x86 CPUs running Linux.
Good for
  • Open-source repository with both a user-space and a kernel-module implementation
  • Kernel module disables interrupts and preemptions, which can give more accurate results
  • Provides a script to disable hyper-threading, which the project says can help obtain repeatable results
Watch out for
  • Linux-based; no other operating systems are described
  • The kernel module runs arbitrary code in kernel space and should not be used on a production system
  • The kernel module must be loaded again after every reboot, and nanoBench might not work with Secure Boot enabled

Nanobench at a glance

Type
Open-source project
Pricing
Not confirmed. Check the site
Open source
Yes · Source code
Language
English
Last checked
Oct 6, 2026 · Online when checked
Listed
Oct 5, 2026

Nanobench alternatives

Tools and sites you could use instead, ranked by how closely they match.

All 24 alternatives

Popular in Linux & Mac Apps

Well-known listings from the same topic.

All 196

Nanobench FAQ

What is the difference between the user-space version and the kernel module?
The user-space version runs benchmarks in user space. The kernel module can benchmark privileged instructions, use uncore performance counters, and disable interrupts and preemptions during measurement, but it runs arbitrary code in kernel space and is not intended for production systems.
Does nanoBench require Secure Boot to be turned off?
The repository states that nanoBench might not work if Secure Boot is enabled and links to instructions for disabling it.
Which processors does nanoBench target?
It is described as a tool for recent Intel and AMD x86 CPUs, with example performance-counter configuration files for recent microarchitectures from both vendors.
Is something wrong or out of date?

Tell us and an editor will check it.

Own this website?

Claim the listing and suggest updates yourself. An editor checks every claim first.

Claim this listing