tasty-papi: Bencmarking using instruction counting

[ benchmarking, bsd3, development, performance, testing ] [ Propose Tags ]

Benchmarking framework which uses instruction counters intead of time measurements. Instruction count is only proxy for code performance but unlike time could be measured deterministically. PAPI is used in order to access hardware counters.


[Skip to Readme]

Modules

[Index] [Quick Jump]

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

  • No Candidates
Versions [RSS] 0.1, 0.1.0.1, 0.1.1.0, 0.1.2.0
Change log Changelog.md
Dependencies base (>=4.10 && <5), containers (>=0.5), deepseq, stm, tasty (>=0.11.3) [details]
License BSD-3-Clause
Copyright 2023, Alexey Khudyakov
Author Alexey Khudyakov <alexey.skladnoy@gmail.com>
Maintainer Alexey Khudyakov <alexey.skladnoy@gmail.com>
Category Development, Performance, Testing, Benchmarking
Home page https://github.com/Shimuuar/tasty-papi
Bug tracker https://github.com/Shimuuar/tasty-papi/issues
Source repo head: git clone http://github.com/Shimuuar/tasty-papi
Uploaded by AlexeyKhudyakov at 2024-01-06T10:56:44Z
Distributions LTSHaskell:0.1.2.0, NixOS:0.1.2.0, Stackage:0.1.2.0
Downloads 258 total (17 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs uploaded by user
Build status unknown [no reports yet]

Readme for tasty-papi-0.1.2.0

[back to package description]

tasti-papi

This is another approach to benchmarking which uses counting of CPU instructions instead of time measurements. Underlying hardware counters are accessed using PAPI library so all hardware and OS support is inherited from there.

This approach is suitable for benchmarking CPU bound code. Instruction count is only proxy for code performance but it has advantage of being deterministic. Timing measurements are affected by concurrent workloads and require dedicated hardware in order to get precise measurements. Instruction counting is not affected by this so it could be run as part of CI and used to detect performance regressions.