OutputTimings Class Reference#

DiFfRG: DiFfRG::OutputTimings Class Reference
DiFfRG
Discretization Framework for functional Renormalization Group flows
DiFfRG::OutputTimings Class Reference

Running statistics over all frames of one run. More...

#include <output_timings.hh>

Public Member Functions

void add (const FrameTimings &frame)
 
void set_writer_totals (const FrameTimings &totals, bool asynchronous)
 Record what the writer thread did, which is not part of any frame's cost.
 
std::string format () const
 
std::size_t frames () const noexcept
 
const FrameTimings & totals () const noexcept
 
const FrameTimings & maxima () const noexcept
 

Private Attributes

std::size_t n_frames = 0
 
FrameTimings sum
 
FrameTimings max
 
FrameTimings writer
 
bool writer_asynchronous = false
 

Detailed Description

Running statistics over all frames of one run.

Member Function Documentation

◆ add()

void DiFfRG::OutputTimings::add ( const FrameTimings & frame)

◆ format()

std::string DiFfRG::OutputTimings::format ( ) const

Multi-line report: count, total, mean, max per bucket. Empty when no frame was recorded.

◆ frames()

std::size_t DiFfRG::OutputTimings::frames ( ) const
inlinenoexcept

◆ maxima()

const FrameTimings & DiFfRG::OutputTimings::maxima ( ) const
inlinenoexcept

◆ set_writer_totals()

void DiFfRG::OutputTimings::set_writer_totals ( const FrameTimings & totals,
bool asynchronous )

Record what the writer thread did, which is not part of any frame's cost.

Reported on its own line rather than folded into the buckets: once the writes are on a background thread they no longer delay the integrator, and adding them to the frame total would say the opposite of what happened.

◆ totals()

const FrameTimings & DiFfRG::OutputTimings::totals ( ) const
inlinenoexcept

Member Data Documentation

◆ max

FrameTimings DiFfRG::OutputTimings::max
private

◆ n_frames

std::size_t DiFfRG::OutputTimings::n_frames = 0
private

◆ sum

FrameTimings DiFfRG::OutputTimings::sum
private

◆ writer

FrameTimings DiFfRG::OutputTimings::writer
private

◆ writer_asynchronous

bool DiFfRG::OutputTimings::writer_asynchronous = false
private

The documentation for this class was generated from the following file:
  • /home/runner/work/DiFfRG_current/DiFfRG_current/DiFfRG/include/DiFfRG/discretization/data/output_timings.hh