Skip to content
GitLab
Projects Groups Topics Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
  • Sign in
  • Gaudi Gaudi
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributor statistics
    • Graph
    • Compare revisions
    • Locked files
  • Issues 124
    • Issues 124
    • List
    • Boards
    • Service Desk
    • Milestones
    • Iterations
    • Requirements
  • Merge requests 35
    • Merge requests 35
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
    • Test cases
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Container Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Code review
    • Insights
    • Issue
    • Repository
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • GaudiGaudi
  • GaudiGaudi
  • Merge requests
  • !629

Implementation of a new set of counters

  • Review changes

  • Download
  • Email patches
  • Plain diff
Merged Sebastien Ponce requested to merge lhcb/Gaudi:sponce_newCounters into master Mar 12, 2018
  • Overview 398
  • Commits 2
  • Pipelines 20
  • Changes 33

To be merged after !605 (closed) as it depends on it. So I keep it WIP for the moment although it's ready as !605 (closed) is WIP

The new counters have a few new features compared to existing StatEntity :

  • they are templated by the counted type
  • they come with different flavors counting only what you need (e.g. simple count, no stat)
  • more flavour can easily be created at will thanks to the AccumulatorSet object
  • they come with 2 implementations : thread safe or not
  • the thread safe ones use atomics and should be as efficient as possible
  • a Buffer object allows to easily buffer updates to a counter made in a tight loop, without paying the atomic price each time

A Small unit test is available in the test suite and example code is provided in the comments of Counters.h where they are implemented. Existing code has been adapted, in particular the ChronoSvc.

Last note : the pipeline is currently failing because of issues with the testing infrastructure itself. As long as it only complains with python file, it's all right, as this MR does not touch any.

Edited Apr 03, 2018 by Sebastien Ponce
Assignee
Assign to
Reviewers
Request review from
Time tracking
Source branch: sponce_newCounters