Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

jobc::Resource Class Reference

Summary of system resources. More...

#include <Resource.h>

List of all members.

Public Member Functions

 Resource ()
void Log ()
void Sum (const Resource &r)
void Difference (const Resource &r)

Public Attributes

double stime
double utime
 system time (s)
double maxrss
 user time (s)
double ixrss
 Maximum resident set size.
double idrss
 Integral shared memory size.
double isrss
 Integral unshared data size.
double minflt
 Integral unshared stack size.
double majflt
 page reclaims
double nswap
 page faults
double inblock
 swaps
double oublock
 block input operations
double msgsnd
 block output operations
double msgrcv
 messages sent
double nsignals
 messages received
double nvcsw
 signals received
double nivcsw
 voluntary context switches
double statm_size
 involuntart context switches
double statm_resident
 total program size
double statm_shared
 size of memory portions
double statm_trs
 number of pages that are shared
double statm_drs
 number of pages that are 'code'
double statm_lrs
 number of pages that are data/stack
double statm_dt
 number of pages of library


Detailed Description

Summary of system resources.

Resources are stored as doubles so allow for signed arithmetic allowing this class to also track differences in resource utilization

Definition at line 10 of file Resource.h.


Constructor & Destructor Documentation

Resource::Resource  ) 
 

Definition at line 10 of file Resource.cxx.

00010                    :
00011   stime(0),
00012   utime(0),
00013   maxrss(0),
00014   ixrss(0),
00015   idrss(0),
00016   isrss(0),
00017   minflt(0),
00018   majflt(0),
00019   nswap(0),
00020   inblock(0),
00021   oublock(0),
00022   msgsnd(0),
00023   msgrcv(0),
00024   nsignals(0),
00025   nvcsw(0),
00026   nivcsw(0)
00027 { }


Member Function Documentation

void Resource::Difference const Resource r  ) 
 

Definition at line 113 of file Resource.cxx.

References idrss, inblock, isrss, ixrss, majflt, maxrss, minflt, msgrcv, msgsnd, nivcsw, nsignals, nswap, nvcsw, oublock, statm_drs, statm_dt, statm_lrs, statm_resident, statm_shared, statm_size, statm_trs, stime, and utime.

Referenced by jobc::Sequence::Exec(), and jobc::Node::Exec().

00114 {
00115   utime    -= r.utime;
00116   stime    -= r.stime;
00117   maxrss   -= r.maxrss;
00118   ixrss    -= r.ixrss;
00119   idrss    -= r.idrss;
00120   isrss    -= r.isrss;
00121   minflt   -= r.minflt;
00122   majflt   -= r.majflt;
00123   nswap    -= r.nswap;
00124   inblock  -= r.inblock;
00125   oublock  -= r.oublock;
00126   msgsnd   -= r.msgsnd;
00127   msgrcv   -= r.msgrcv;
00128   nsignals -= r.nsignals;
00129   nvcsw    -= r.nvcsw;
00130   nivcsw   -= r.nivcsw;
00131 
00132   statm_size     -= r.statm_size;
00133   statm_resident -= r.statm_resident;
00134   statm_shared   -= r.statm_shared;
00135   statm_trs      -= r.statm_trs;
00136   statm_drs      -= r.statm_drs;
00137   statm_lrs      -= r.statm_lrs;
00138   statm_dt       -= r.statm_dt;
00139 }

void Resource::Log  ) 
 

Definition at line 31 of file Resource.cxx.

References idrss, inblock, isrss, ixrss, majflt, maxrss, minflt, msgrcv, msgsnd, nivcsw, nsignals, nswap, nvcsw, oublock, statm_drs, statm_dt, statm_lrs, statm_resident, statm_shared, statm_size, statm_trs, stime, and utime.

Referenced by jobc::ResourceSummary::Ana(), jobc::Sequence::Exec(), and jobc::Node::Exec().

00032 {
00033   struct rusage r;
00034   getrusage(RUSAGE_SELF, &r); 
00035 
00036   utime = r.ru_utime.tv_sec + 1.0E-6*r.ru_utime.tv_usec;
00037   stime = r.ru_stime.tv_sec + 1.0E-6*r.ru_stime.tv_usec;
00038   
00039   maxrss   = 1.0*r.ru_maxrss;
00040   ixrss    = 1.0*r.ru_ixrss;
00041   idrss    = 1.0*r.ru_idrss;
00042   isrss    = 1.0*r.ru_isrss;
00043   minflt   = 1.0*r.ru_minflt;
00044   majflt   = 1.0*r.ru_majflt;
00045   nswap    = 1.0*r.ru_nswap;
00046   inblock  = 1.0*r.ru_inblock;
00047   oublock  = 1.0*r.ru_oublock;
00048   msgsnd   = 1.0*r.ru_msgsnd;
00049   msgrcv   = 1.0*r.ru_msgrcv;
00050   nsignals = 1.0*r.ru_nsignals;
00051   nvcsw    = 1.0*r.ru_nvcsw;
00052   nivcsw   = 1.0*r.ru_nivcsw;
00053 
00054   // There's also potentially useful information in /proc/statm/statm,
00055   // so look there
00056   char statmfile[64];
00057   sprintf(statmfile,"/proc/%d/statm",getpid());
00058   std::ifstream f;
00059   f.open(statmfile);
00060   if (!f) {
00061     statm_size     = -1;
00062     statm_resident = -1;
00063     statm_shared   = -1;
00064     statm_trs      = -1;
00065     statm_drs      = -1;
00066     statm_lrs      = -1;
00067     statm_dt       = -1;
00068   }
00069   else {
00070     f >> statm_size;
00071     f >> statm_resident;
00072     f >> statm_shared;
00073     f >> statm_trs;
00074     f >> statm_drs;
00075     f >> statm_lrs;
00076     f >> statm_dt;
00077   }
00078   f.close();
00079 }

void Resource::Sum const Resource r  ) 
 

Definition at line 83 of file Resource.cxx.

References idrss, inblock, isrss, ixrss, majflt, maxrss, minflt, msgrcv, msgsnd, nivcsw, nsignals, nswap, nvcsw, oublock, statm_drs, statm_dt, statm_lrs, statm_resident, statm_shared, statm_size, statm_trs, stime, and utime.

Referenced by jobc::Sequence::Exec(), and jobc::Node::Exec().

00084 {
00085   utime    += r.utime;
00086   stime    += r.stime;
00087   maxrss   += r.maxrss;
00088   ixrss    += r.ixrss;
00089   idrss    += r.idrss;
00090   isrss    += r.isrss;
00091   minflt   += r.minflt;
00092   majflt   += r.majflt;
00093   nswap    += r.nswap;
00094   inblock  += r.inblock;
00095   oublock  += r.oublock;
00096   msgsnd   += r.msgsnd;
00097   msgrcv   += r.msgrcv;
00098   nsignals += r.nsignals;
00099   nvcsw    += r.nvcsw;
00100   nivcsw   += r.nivcsw;
00101 
00102   statm_size     += r.statm_size;
00103   statm_resident += r.statm_resident;
00104   statm_shared   += r.statm_shared;
00105   statm_trs      += r.statm_trs;
00106   statm_drs      += r.statm_drs;
00107   statm_lrs      += r.statm_lrs;
00108   statm_dt       += r.statm_dt;
00109 }


Member Data Documentation

double jobc::Resource::idrss
 

Integral shared memory size.

Definition at line 22 of file Resource.h.

Referenced by jobc::ResourceSummary::Ana(), Difference(), Log(), jobc::Node::ResourceReport(), and Sum().

double jobc::Resource::inblock
 

swaps

Definition at line 27 of file Resource.h.

Referenced by jobc::ResourceSummary::Ana(), Difference(), Log(), jobc::Node::ResourceReport(), and Sum().

double jobc::Resource::isrss
 

Integral unshared data size.

Definition at line 23 of file Resource.h.

Referenced by jobc::ResourceSummary::Ana(), Difference(), Log(), jobc::Node::ResourceReport(), and Sum().

double jobc::Resource::ixrss
 

Maximum resident set size.

Definition at line 21 of file Resource.h.

Referenced by jobc::ResourceSummary::Ana(), Difference(), Log(), jobc::Node::ResourceReport(), and Sum().

double jobc::Resource::majflt
 

page reclaims

Definition at line 25 of file Resource.h.

Referenced by jobc::ResourceSummary::Ana(), Difference(), Log(), jobc::Node::ResourceReport(), and Sum().

double jobc::Resource::maxrss
 

user time (s)

Definition at line 20 of file Resource.h.

Referenced by jobc::ResourceSummary::Ana(), Difference(), Log(), jobc::Node::ResourceReport(), and Sum().

double jobc::Resource::minflt
 

Integral unshared stack size.

Definition at line 24 of file Resource.h.

Referenced by jobc::ResourceSummary::Ana(), Difference(), Log(), jobc::Node::ResourceReport(), and Sum().

double jobc::Resource::msgrcv
 

messages sent

Definition at line 30 of file Resource.h.

Referenced by jobc::ResourceSummary::Ana(), Difference(), Log(), jobc::Node::ResourceReport(), and Sum().

double jobc::Resource::msgsnd
 

block output operations

Definition at line 29 of file Resource.h.

Referenced by jobc::ResourceSummary::Ana(), Difference(), Log(), jobc::Node::ResourceReport(), and Sum().

double jobc::Resource::nivcsw
 

voluntary context switches

Definition at line 33 of file Resource.h.

Referenced by jobc::ResourceSummary::Ana(), Difference(), Log(), jobc::Node::ResourceReport(), and Sum().

double jobc::Resource::nsignals
 

messages received

Definition at line 31 of file Resource.h.

Referenced by jobc::ResourceSummary::Ana(), Difference(), Log(), jobc::Node::ResourceReport(), and Sum().

double jobc::Resource::nswap
 

page faults

Definition at line 26 of file Resource.h.

Referenced by jobc::ResourceSummary::Ana(), Difference(), Log(), jobc::Node::ResourceReport(), and Sum().

double jobc::Resource::nvcsw
 

signals received

Definition at line 32 of file Resource.h.

Referenced by jobc::ResourceSummary::Ana(), Difference(), Log(), jobc::Node::ResourceReport(), and Sum().

double jobc::Resource::oublock
 

block input operations

Definition at line 28 of file Resource.h.

Referenced by jobc::ResourceSummary::Ana(), Difference(), Log(), jobc::Node::ResourceReport(), and Sum().

double jobc::Resource::statm_drs
 

number of pages that are 'code'

Definition at line 39 of file Resource.h.

Referenced by jobc::ResourceSummary::Ana(), Difference(), Log(), jobc::Node::ResourceReport(), and Sum().

double jobc::Resource::statm_dt
 

number of pages of library

Definition at line 41 of file Resource.h.

Referenced by jobc::ResourceSummary::Ana(), Difference(), Log(), jobc::Node::ResourceReport(), and Sum().

double jobc::Resource::statm_lrs
 

number of pages that are data/stack

Definition at line 40 of file Resource.h.

Referenced by jobc::ResourceSummary::Ana(), Difference(), Log(), jobc::Node::ResourceReport(), and Sum().

double jobc::Resource::statm_resident
 

total program size

Definition at line 36 of file Resource.h.

Referenced by jobc::ResourceSummary::Ana(), Difference(), Log(), jobc::Node::ResourceReport(), and Sum().

double jobc::Resource::statm_shared
 

size of memory portions

Definition at line 37 of file Resource.h.

Referenced by jobc::ResourceSummary::Ana(), Difference(), Log(), jobc::Node::ResourceReport(), and Sum().

double jobc::Resource::statm_size
 

involuntart context switches

Definition at line 35 of file Resource.h.

Referenced by jobc::ResourceSummary::Ana(), Difference(), Log(), jobc::Node::ResourceReport(), and Sum().

double jobc::Resource::statm_trs
 

number of pages that are shared

Definition at line 38 of file Resource.h.

Referenced by jobc::ResourceSummary::Ana(), Difference(), Log(), jobc::Node::ResourceReport(), and Sum().

double jobc::Resource::stime
 

Definition at line 18 of file Resource.h.

Referenced by jobc::ResourceSummary::Ana(), jobc::Node::AnaTime(), Difference(), Log(), jobc::Node::Print(), jobc::Node::RecoTime(), jobc::Node::ResourceReport(), and Sum().

double jobc::Resource::utime
 

system time (s)

Definition at line 19 of file Resource.h.

Referenced by jobc::ResourceSummary::Ana(), jobc::Node::AnaTime(), Difference(), Log(), jobc::Node::Print(), jobc::Node::RecoTime(), jobc::Node::ResourceReport(), and Sum().


The documentation for this class was generated from the following files:
Generated on Mon Nov 23 04:45:33 2009 for NOvA Offline by  doxygen 1.3.9.1