Jul 20, 2023

More reliable benchmarking with the least amount of thinking

This module attempts to implement reasonably robust benchmarking with little extra effort and expertise required from the user. That is to say, benchmarking using this module is likely an improvement over

time some-command –to –benchmark


use Benchmark qw/timethis/; timethis1000, ‘system”some-command”, …’;

The module currently works similar to the former command line, except in layman terms it will run the command many times, estimate the uncertainty of the result and keep iterating until a certain user-defined precision has been reached. Then, it calculates the resulting uncertainty and goes through some pain to discard bad runs and subtract overhead from the timings. The reported timing includes an uncertainty, so that multiple benchmarks can more easily be compared.

Please note that Dumbbench works entirely with wallclock time as reported by TimeHiRes’ time function.

Checkout these related ports:
  • Wrk - Modern HTTP benchmarking tool
  • Webbench - Simple forking web benchmark
  • Vkpeak - Profile Vulkan devices to find their peak capacities
  • Vkoverhead - Evaluate CPU overhead of Vulkan drivers
  • Vkmark - Vulkan benchmark
  • Vegeta - HTTP load testing tool and library
  • Uperf - Network performance tool to model and replay of networking patterns
  • Unixbench - BYTE magazine's Public Domain benchmark for UNIX
  • Uica - Code Analyzer from the uops.info project
  • Ubench - Unix Benchmark Utility for CPU(s) and memory
  • Typometer - Text/code editor typing latency analyzer
  • Ttcp - Benchmarking tool for analysing TCP and UDP performance
  • Tsung - Multi-protocol distributed load testing tool
  • Thrulay - Network capacity tester
  • Tcpblast - Measures the throughput of a TCP connection