nanobench Logo

Getting Started

  • Installation
    • Direct Inclusion
    • CMake Integration
  • Usage
  • Output Columns
    • Choosing the Columns
    • Showing Context as Columns
  • Examples
    • Something Fast
    • Something Slow
    • Something Unstable
  • Untimed Setup
  • Comparing Results
  • Comparing Alternatives
    • Reading the output
    • How it works
      • Designing the experiment
      • Reducing a round to one number
      • Estimating and reporting
      • What was rejected
      • Serial correlation, and why warmup is not the answer
  • Asymptotic Complexity
  • Rendering Mustache-like Templates
    • Time Units in Templates
    • CSV - Comma-Separated Values
    • HTML Box Plots
    • JSON - JavaScript Object Notation
    • pyperf - Python pyperf module Output
      • Show Benchmark Statistics
      • Show a Histogram
      • Compare Results

Comparison

  • Test Set
  • Runtime
  • Implementations & Output
    • nanobench
      • Sourcecode
      • Results
    • Google Benchmark
      • Sourcecode
      • Results
    • nonius
      • Sourcecode
      • Results
    • Picobench
      • Sourcecode
      • Results
    • Catch2
      • Sourcecode
      • Results
    • moodycamel::microbench
      • Sourcecode
      • Results
    • sltbench
      • Sourcecode
      • Results
    • Celero
    • folly Benchmark

Reference

  • ankerl::nanobench Reference
    • Bench - Main Entry Point
      • ankerl::nanobench::Bench
        • Bench()
        • run()
        • run()
        • compare()
        • title()
        • title()
        • name()
        • context()
        • clearContext()
        • batch()
        • unit()
        • timeUnit()
        • output()
        • clockResolutionMultiple()
        • epochs()
        • maxEpochTime()
        • minEpochTime()
        • minEpochIterations()
        • epochIterations()
        • warmup()
        • relative()
        • performanceCounters()
        • hideColumn()
        • showColumn()
        • isColumnVisible()
        • contextColumn()
        • clearContextColumns()
        • results()
        • doNotOptimizeAway()
        • complexityN()
        • complexityBigO()
        • complexityBigO()
        • render()
        • setup()
    • Column - Table Columns
      • Column
        • relative
        • complexityN
        • timePerUnit
        • unitPerSecond
        • error
        • instructions
        • cycles
        • ipc
        • branches
        • branchMisses
        • total
        • _size
    • Rng - Extremely fast PRNG
      • ankerl::nanobench::Rng
        • result_type
        • Rng()
        • operator=()
        • Rng()
        • Rng()
        • copy()
        • operator()()
        • bounded()
        • uniform01()
        • shuffle()
        • state()
    • Result - Benchmark Results
      • ankerl::nanobench::Result
    • CompareResult - Comparison Outcome
      • ankerl::nanobench::CompareResult
        • size()
        • operator[]()
        • rounds()
        • comparisons()
        • isSignificant()
        • fastest()
        • ankerl::nanobench::CompareResult::Entry
    • doNotOptimizeAway()
      • doNotOptimizeAway()
    • render() - Mustache-like Templates
      • render()
      • templates::csv
        • csv()
      • templates::htmlBoxplot
        • htmlBoxplot()
      • templates::json
        • json()
      • templates::pyperf
        • pyperf()
    • Environment Variables
      • NANOBENCH_ENDLESS - Run a Specific Test Endlessly
      • NANOBENCH_SUPPRESS_WARNINGS - No Stability Warnings
      • NANOBENCH_CONFIG - Change Settings Without Recompiling
  • Index

About

  • MIT License
  • Contributor Covenant Code of Conduct
    • Our Pledge
    • Our Standards
    • Enforcement Responsibilities
    • Scope
    • Enforcement
    • Enforcement Guidelines
      • 1. Correction
      • 2. Warning
      • 3. Temporary Ban
      • 4. Permanent Ban
    • Attribution
nanobench
  • Search


© Copyright 2019-2023 Martin Leitner-Ankerl <[email protected]>.

Built with Sphinx using a theme provided by Read the Docs.