Skip to content

Rework PAMM#850

Draft
fabianbs96 wants to merge 19 commits into
secure-software-engineering:developmentfrom
fabianbs96:f-ImprovePAMM
Draft

Rework PAMM#850
fabianbs96 wants to merge 19 commits into
secure-software-engineering:developmentfrom
fabianbs96:f-ImprovePAMM

Conversation

@fabianbs96

@fabianbs96 fabianbs96 commented Jul 13, 2026

Copy link
Copy Markdown
Member

The Performance Measurement Meachanism (PAMM) is old, slow, and cumbersome to use. It is not thread-safe and heavily relies on macros.

This PR reworks PAMM to use templates for achieving zero-overhead counters, timers, and histograms. Also unit-tests and PAMM are no longer mutually exclusive.
All new PAMM entities are in the namespace par::pamm.
New PAMM counters, etc. are scoped! Define a PAMM_CATEGORY("name"); in a scope (type or namespace) to create a new category. All pamm entities in that scope that can see the category will pick it up automatically.

Use the new PAMM_ macros to declare counters, etc. as static variables (no longer identifying pamm entities via strings!). They are registered automatically in the global pamm::Registry. To increment a counter, adding datapoints to a histogram etc. directly access the declared static variable.

For reference how to use the new PAMM, look at the IDESolver.

@fabianbs96 fabianbs96 self-assigned this Jul 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant