https://github.com/mebeim/minibench
🎛️ Minimalistic runtime benchmarking utility for Linux
https://github.com/mebeim/minibench
Last synced: about 1 month ago
JSON representation
🎛️ Minimalistic runtime benchmarking utility for Linux
- Host: GitHub
- URL: https://github.com/mebeim/minibench
- Owner: mebeim
- License: apache-2.0
- Created: 2022-07-20T19:34:23.000Z (almost 3 years ago)
- Default Branch: master
- Last Pushed: 2023-04-24T17:55:22.000Z (about 2 years ago)
- Last Synced: 2025-03-21T21:51:11.449Z (about 2 months ago)
- Language: C
- Homepage:
- Size: 97.7 KB
- Stars: 8
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Minibench
=========Minimalistic runtime benchmarking utility for Linux written in plain C99.
Design goals:
- Concise, well documented, standard-conforming code.
- No external dependencies of any kind.
- Smallest possible overhead (within reasonable limits) for the timing code.
- Ability to perform warm-up runs before starting timed runs.
- Calculation of total, median, average, standard deviation, minimum and maximum
of wall-clock time and CPU time, using an online algorithm where possible
(i.e. for everything except median).
- Preservation of the exit status of the benchmarked program when possible.
- Ability to mute the benchmarked program's output (stdout and stderr).
- Ability to early stop a running benchmarking session through CTRL+C (SIGINT).
- Human readable, pretty-printed output.Building and installation
-------------------------Minibench is designed to run on a Linux system, though it will probably also
compile and run on other Unix-like systems.Use `make` to build, `make install` to install, and `make uninstall` to
uninstall. Installing will simply create a copy of the compiled `bench` binary
inside `~/.local/bin/`, so make sure that directory is in your `PATH`.Usage
-----Invoke `bench -h` for usage information:
```
Usage: bench [-hkqQv] [-n COUNT] [-w COUNT] PROGRAM [ARGS...]
Benchmark the running time of PROGRAM invoked with the given ARGS.Command line options:
-n COUNT number of runs of the benchmarked program
-w COUNT number of warm-up runs of the benchmarked program before timed runs
-k forcibly kill benchmarked program if stopped by a signal, instead of
waiting for it to continue (default behavior)
-q mute benchmarked program redirecting its stdout/stderr to /dev/null
-Q forcibly mute benchmarked program closing its stdout/stderr
-h show this help message and exit
-v print version information and exitThe exit status will be the one of the benchmarked program's last run, unless
stopped or killed by a signal, in which case it will be 128 + signal number.
On error, an error message will be printed before exiting with status 1.
```---
*Copyright © 2022-2023 Marco Bonelli. Licensed under the Apache License v2.0.*