All Projects → sosy-lab → Benchexec

sosy-lab / Benchexec

Licence: apache-2.0
BenchExec: A Framework for Reliable Benchmarking and Resource Measurement

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Benchexec

Karma Benchmark
A Karma plugin to run Benchmark.js over multiple browsers with CI compatible output.
Stars: ✭ 88 (-18.52%)
Mutual labels:  benchmark, benchmarking
Rtb
Benchmarking tool to stress real-time protocols
Stars: ✭ 35 (-67.59%)
Mutual labels:  benchmark, benchmarking
Benchmarkdotnet
Powerful .NET library for benchmarking
Stars: ✭ 7,138 (+6509.26%)
Mutual labels:  benchmark, benchmarking
Phoronix Test Suite
The Phoronix Test Suite open-source, cross-platform automated testing/benchmarking software.
Stars: ✭ 1,339 (+1139.81%)
Mutual labels:  benchmark, benchmarking
Pytest Django Queries
Generate performance reports from your django database performance tests.
Stars: ✭ 54 (-50%)
Mutual labels:  benchmark, benchmarking
Lzbench
lzbench is an in-memory benchmark of open-source LZ77/LZSS/LZMA compressors
Stars: ✭ 490 (+353.7%)
Mutual labels:  benchmark, benchmarking
Sysbench Docker Hpe
Sysbench Dockerfiles and Scripts for VM and Container benchmarking MySQL
Stars: ✭ 14 (-87.04%)
Mutual labels:  benchmark, benchmarking
Unchase.FluentPerformanceMeter
🔨 Make the exact performance measurements of the public methods for public classes using this NuGet Package with fluent interface. Requires .Net Standard 2.0+. It is an Open Source project under Apache-2.0 License.
Stars: ✭ 33 (-69.44%)
Mutual labels:  benchmarking, benchmark
Jsbench Me
jsbench.me - JavaScript performance benchmarking playground
Stars: ✭ 50 (-53.7%)
Mutual labels:  benchmark, benchmarking
Dana
Test/benchmark regression and comparison system with dashboard
Stars: ✭ 46 (-57.41%)
Mutual labels:  benchmark, benchmarking
Web Tooling Benchmark
JavaScript benchmark for common web developer workloads
Stars: ✭ 290 (+168.52%)
Mutual labels:  benchmark, benchmarking
Jsperf.com
jsperf.com v2. https://github.com/h5bp/lazyweb-requests/issues/174
Stars: ✭ 1,178 (+990.74%)
Mutual labels:  benchmark, benchmarking
best
🏆 Delightful Benchmarking & Performance Testing
Stars: ✭ 73 (-32.41%)
Mutual labels:  benchmarking, benchmark
Pytest Benchmark
py.test fixture for benchmarking code
Stars: ✭ 730 (+575.93%)
Mutual labels:  benchmark, benchmarking
p3arsec
Parallel Patterns Implementation of PARSEC Benchmark Applications
Stars: ✭ 12 (-88.89%)
Mutual labels:  benchmarking, benchmark
Bench Scripts
A compilation of Linux server benchmarking scripts.
Stars: ✭ 873 (+708.33%)
Mutual labels:  benchmark, benchmarking
bench
⏱️ Reliable performance measurement for Go programs. All in one design.
Stars: ✭ 33 (-69.44%)
Mutual labels:  benchmarking, benchmark
CARLA
CARLA: A Python Library to Benchmark Algorithmic Recourse and Counterfactual Explanation Algorithms
Stars: ✭ 166 (+53.7%)
Mutual labels:  benchmarking, benchmark
Pibench
Benchmarking framework for index structures on persistent memory
Stars: ✭ 46 (-57.41%)
Mutual labels:  benchmark, benchmarking
Scalajs Benchmark
Benchmarks: write in Scala or JS, run in your browser. Live demo:
Stars: ✭ 63 (-41.67%)
Mutual labels:  benchmark, benchmarking

BenchExec

A Framework for Reliable Benchmarking and Resource Measurement

Build Status Apache 2.0 License PyPI version DOI

News:

  • Linux kernel 5.11 finally makes it possible to use all BenchExec features on other distributions than Ubuntu!
  • We now provide an Ubuntu PPA that makes installing and upgrading BenchExec easier (docs).
  • BenchExec 2.3 produces improved HTML tables that load much faster and provide more features, subsequent versions improve these tables even further. if the tool cpu-energy-meter is installed on the system.
  • An extended version of our paper on BenchExec and its background was published in STTT, you can read the preprint of Reliable Benchmarking: Requirements and Solutions online. We also provide a set of overview slides.

BenchExec provides three major features:

  • execution of arbitrary commands with precise and reliable measurement and limitation of resource usage (e.g., CPU time and memory), and isolation against other running processes
  • an easy way to define benchmarks with specific tool configurations and resource limits, and automatically executing them on large sets of input files
  • generation of interactive tables and plots for the results

Contrary to other benchmarking frameworks, it is able to reliably measure and limit resource usage of the benchmarked tool even if it spawns subprocesses. In order to achieve this, it uses the cgroups feature of the Linux kernel to correctly handle groups of processes. For proper isolation of the benchmarks, it uses (if available) Linux user namespaces and an overlay filesystem to create a container that restricts interference of the executed tool with the benchmarking host. BenchExec is intended for benchmarking non-interactive tools on Linux systems. It measures CPU time, wall time, and memory usage of a tool, and allows to specify limits for these resources. It also allows to limit the CPU cores and (on NUMA systems) memory regions, and the container mode allows to restrict filesystem and network access. In addition to measuring resource usage, BenchExec can verify that the result of the tool was as expected, and extract further statistical data from the output. Results from multiple runs can be combined into CSV and interactive HTML tables, of which the latter provide scatter and quantile plots (have a look at our demo table).

BenchExec works only on Linux and needs a one-time setup of cgroups by the machine's administrator. The actual benchmarking can be done by any user and does not need root access.

BenchExec was originally developed for use with the software verification framework CPAchecker and is now developed as an independent project at the Software Systems Lab of the Ludwig-Maximilians-Universität München (LMU Munich).

Links

License and Copyright

BenchExec is licensed under the Apache 2.0 License, copyright Dirk Beyer. Exceptions are some tool-info modules and third-party code that is bundled in the HTML tables, which are available under several other free licenses (cf. folder LICENSES).

Authors

Maintainer: Philipp Wendler

Contributors:

Users of BenchExec

BenchExec was successfully used for benchmarking in all instances of the international competitions on Software Verification and Software Testing with a wide variety of benchmarked tools and hundreds of thousands benchmark runs. It is integrated into the cluster-based logic-solving service StarExec (GitHub).

The developers of the following tools use BenchExec:

If you would like to be listed here, contact us.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].