Quick Links:

bal | bbl | bdl | bsl

Classes | Public Types | Public Member Functions | Friends

balb::PerformanceMonitor Class Reference

#include <balb_performancemonitor.h>

List of all members.

Classes

class  ConstIterator
class  Statistics

Public Types

enum  Measure {
  e_CPU_TIME, e_CPU_TIME_USER, e_CPU_TIME_SYSTEM, e_CPU_UTIL,
  e_CPU_UTIL_USER, e_CPU_UTIL_SYSTEM, e_RESIDENT_SIZE, e_NUM_THREADS,
  e_NUM_PAGEFAULTS, e_VIRTUAL_SIZE, e_NUM_MEASURES, BAEA_CPU_TIME = e_CPU_TIME,
  BAEA_CPU_TIME_USER = e_CPU_TIME_USER, BAEA_CPU_TIME_SYSTEM = e_CPU_TIME_SYSTEM, BAEA_CPU_UTIL = e_CPU_UTIL, BAEA_CPU_UTIL_USER = e_CPU_UTIL_USER,
  BAEA_CPU_UTIL_SYSTEM = e_CPU_UTIL_SYSTEM, BAEA_RESIDENT_SIZE = e_RESIDENT_SIZE, BAEA_NUM_THREADS = e_NUM_THREADS, BAEA_NUM_PAGEFAULTS = e_NUM_PAGEFAULTS,
  BAEA_VIRTUAL_SIZE = e_VIRTUAL_SIZE, BAEA_NUM_MEASURES = e_NUM_MEASURES, CPU_TIME = e_CPU_TIME, CPU_TIME_USER = e_CPU_TIME_USER,
  CPU_TIME_SYSTEM = e_CPU_TIME_SYSTEM, CPU_UTIL = e_CPU_UTIL, CPU_UTIL_USER = e_CPU_UTIL_USER, CPU_UTIL_SYSTEM = e_CPU_UTIL_SYSTEM,
  RESIDENT_SIZE = e_RESIDENT_SIZE, NUM_THREADS = e_NUM_THREADS, NUM_PAGEFAULTS = e_NUM_PAGEFAULTS, VIRTUAL_SIZE = e_VIRTUAL_SIZE,
  NUM_MEASURES = e_NUM_MEASURES
}

Public Member Functions

 BSLMF_NESTED_TRAIT_DECLARATION (PerformanceMonitor, bslma::UsesBslmaAllocator)
 PerformanceMonitor (bslma::Allocator *basicAllocator=0)
 PerformanceMonitor (bdlmt::TimerEventScheduler *scheduler, double interval, bslma::Allocator *basicAllocator=0)
 ~PerformanceMonitor ()
int registerPid (int pid, const bsl::string &description)
int unregisterPid (int pid)
void setCollectionInterval (double interval)
void collect ()
void resetStatistics ()
ConstIterator begin () const
ConstIterator end () const
ConstIterator find (int pid) const
int numRegisteredPids () const

Friends

class Statistics
class ConstIterator

Detailed Description

Provides a mechanism to collect performance statistics for an arbitrary number of processes running on the local machine.

See Component balb_performancemonitor


Member Enumeration Documentation

Enumerates the set of performance measures this class is capable of monitoring.

Enumerator:
e_CPU_TIME 

CPU time (seconds).

e_CPU_TIME_USER 

user CPU time (seconds)

e_CPU_TIME_SYSTEM 

system CPU time (seconds)

e_CPU_UTIL 

weighted CPU % (user + system)

e_CPU_UTIL_USER 

weighted user CPU %

e_CPU_UTIL_SYSTEM 

weighted system CPU %

e_RESIDENT_SIZE 

number of MBs of physical memory

e_NUM_THREADS 

number of threads

e_NUM_PAGEFAULTS 

number of pagefaults (major + minor)

e_VIRTUAL_SIZE 

number of MBs in the heap

e_NUM_MEASURES 
BAEA_CPU_TIME 
BAEA_CPU_TIME_USER 
BAEA_CPU_TIME_SYSTEM 
BAEA_CPU_UTIL 
BAEA_CPU_UTIL_USER 
BAEA_CPU_UTIL_SYSTEM 
BAEA_RESIDENT_SIZE 
BAEA_NUM_THREADS 
BAEA_NUM_PAGEFAULTS 
BAEA_VIRTUAL_SIZE 
BAEA_NUM_MEASURES 
CPU_TIME 
CPU_TIME_USER 
CPU_TIME_SYSTEM 
CPU_UTIL 
CPU_UTIL_USER 
CPU_UTIL_SYSTEM 
RESIDENT_SIZE 
NUM_THREADS 
NUM_PAGEFAULTS 
VIRTUAL_SIZE 
NUM_MEASURES 

Constructor & Destructor Documentation

balb::PerformanceMonitor::PerformanceMonitor ( bslma::Allocator basicAllocator = 0  )  [explicit]

Create an instance of this class to collect performance statistics on demand (via the collect method). Optionally specify a basicAllocator used to supply memory. If basicAllocator is 0, the currently installed default allocator is used.

balb::PerformanceMonitor::PerformanceMonitor ( bdlmt::TimerEventScheduler scheduler,
double  interval,
bslma::Allocator basicAllocator = 0 
)

Create an instance of this class that uses the specified scheduler to automatically collect performance statistics every specified interval (specified in seconds). Optionally specify a basicAllocator used to supply memory. If basicAllocator is 0, the currently installed default allocator is used. Note that a non-positive interval value indicates that performance statistics should not be automatically collected--in this case the user is responsible for manually calling the collect function.

balb::PerformanceMonitor::~PerformanceMonitor (  ) 

Destroy this object.


Member Function Documentation

balb::PerformanceMonitor::BSLMF_NESTED_TRAIT_DECLARATION ( PerformanceMonitor  ,
bslma::UsesBslmaAllocator   
)
int balb::PerformanceMonitor::registerPid ( int  pid,
const bsl::string description 
)

Register the specified process pid having the specified user-defined description with this performance monitor. After registration, performance statistics will be collected for the pid upon invocation of the collect function. Note that a pid value of zero is interpreted as the pid of the current process. Return 0 on success or a non-zero value otherwise.

int balb::PerformanceMonitor::unregisterPid ( int  pid  ) 

Unregister the specified process pid from the performance monitor. After unregistration, to statistics for the pid will be no longer be available unless the pid is re-registered with the performance monitor through calling registerPid. Note that a pid value of zero is interpreted as the pid of the current process. Return 0 on success or a non-zero value otherwise.

void balb::PerformanceMonitor::setCollectionInterval ( double  interval  ) 

Set the specified time interval, in seconds, after which statistics for each registered pid are automatically collected. The behavior is undefined unless a scheduler was supplied at the construction of this performance monitor. Note that a non-positive interval value indicates that performance statistics should not be automatically collected--in this case the user is responsible for manually calling the collect function.

void balb::PerformanceMonitor::collect (  ) 

Collect performance statistics for each registered pid.

void balb::PerformanceMonitor::resetStatistics (  ) 

Reset the collected min, max, and average values collected for each measure for each monitored process.

ConstIterator balb::PerformanceMonitor::begin (  )  const

Return an iterator positioned at the first set of collected performance statistics.

ConstIterator balb::PerformanceMonitor::end (  )  const

Return an iterator that represents the end of the sequence of sets of collected performance statistics.

ConstIterator balb::PerformanceMonitor::find ( int  pid  )  const

Return the iterator pointing to the set of collected performance statistics for the specified pid if pid has been registered with this performance monitor through the registerPid function, otherwise return end().

int balb::PerformanceMonitor::numRegisteredPids (  )  const

Return the number of processes registered for statistics collection.


Friends And Related Function Documentation

friend class Statistics [friend]
friend class ConstIterator [friend]

The documentation for this class was generated from the following file: