#include <Resource.h>
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 | |
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.
|
|
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 { }
|
|
|
|
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 }
|
|
|
|
Integral shared memory size.
Definition at line 22 of file Resource.h. Referenced by jobc::ResourceSummary::Ana(), Difference(), Log(), jobc::Node::ResourceReport(), and Sum(). |
|
|
swaps
Definition at line 27 of file Resource.h. Referenced by jobc::ResourceSummary::Ana(), Difference(), Log(), jobc::Node::ResourceReport(), and Sum(). |
|
|
Integral unshared data size.
Definition at line 23 of file Resource.h. Referenced by jobc::ResourceSummary::Ana(), Difference(), Log(), jobc::Node::ResourceReport(), and Sum(). |
|
|
Maximum resident set size.
Definition at line 21 of file Resource.h. Referenced by jobc::ResourceSummary::Ana(), Difference(), Log(), jobc::Node::ResourceReport(), and Sum(). |
|
|
page reclaims
Definition at line 25 of file Resource.h. Referenced by jobc::ResourceSummary::Ana(), Difference(), Log(), jobc::Node::ResourceReport(), and Sum(). |
|
|
user time (s)
Definition at line 20 of file Resource.h. Referenced by jobc::ResourceSummary::Ana(), Difference(), Log(), jobc::Node::ResourceReport(), and Sum(). |
|
|
Integral unshared stack size.
Definition at line 24 of file Resource.h. Referenced by jobc::ResourceSummary::Ana(), Difference(), Log(), jobc::Node::ResourceReport(), and Sum(). |
|
|
messages sent
Definition at line 30 of file Resource.h. Referenced by jobc::ResourceSummary::Ana(), Difference(), Log(), jobc::Node::ResourceReport(), and Sum(). |
|
|
block output operations
Definition at line 29 of file Resource.h. Referenced by jobc::ResourceSummary::Ana(), Difference(), Log(), jobc::Node::ResourceReport(), and Sum(). |
|
|
voluntary context switches
Definition at line 33 of file Resource.h. Referenced by jobc::ResourceSummary::Ana(), Difference(), Log(), jobc::Node::ResourceReport(), and Sum(). |
|
|
messages received
Definition at line 31 of file Resource.h. Referenced by jobc::ResourceSummary::Ana(), Difference(), Log(), jobc::Node::ResourceReport(), and Sum(). |
|
|
page faults
Definition at line 26 of file Resource.h. Referenced by jobc::ResourceSummary::Ana(), Difference(), Log(), jobc::Node::ResourceReport(), and Sum(). |
|
|
signals received
Definition at line 32 of file Resource.h. Referenced by jobc::ResourceSummary::Ana(), Difference(), Log(), jobc::Node::ResourceReport(), and Sum(). |
|
|
block input operations
Definition at line 28 of file Resource.h. Referenced by jobc::ResourceSummary::Ana(), Difference(), Log(), jobc::Node::ResourceReport(), and Sum(). |
|
|
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(). |
|
|
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(). |
|
|
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(). |
|
|
total program size
Definition at line 36 of file Resource.h. Referenced by jobc::ResourceSummary::Ana(), Difference(), Log(), jobc::Node::ResourceReport(), and Sum(). |
|
|
size of memory portions
Definition at line 37 of file Resource.h. Referenced by jobc::ResourceSummary::Ana(), Difference(), Log(), jobc::Node::ResourceReport(), and Sum(). |
|
|
involuntart context switches
Definition at line 35 of file Resource.h. Referenced by jobc::ResourceSummary::Ana(), Difference(), Log(), jobc::Node::ResourceReport(), and Sum(). |
|
|
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(). |
|
|
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(). |
|
|
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(). |
1.3.9.1