tasty-papi: Bencmarking using instruction counting

[ benchmarking, bsd3, development, library, 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]


[Last Documentation]

  • Test
    • Tasty
      • Test.Tasty.PAPI


Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees


  • No Candidates
Versions [RSS] 0.1,,
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 2023-11-06T14:00:16Z
Distributions NixOS:
Downloads 77 total (3 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs not available [build log]
All reported builds failed as of 2023-11-06 [all 2 reports]

Readme for tasty-papi-

[back to package description]


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.