Changeset 2487 in Sophya for trunk/SophyaLib/SysTools/resusage.cc


Ignore:
Timestamp:
Dec 26, 2003, 12:19:21 PM (22 years ago)
Author:
ansari
Message:

Possibilite de specifier temps process et/ou process fils ds ResourceUsage - Reza 26 Dec 2003

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/SophyaLib/SysTools/resusage.cc

    r2322 r2487  
    3636/*!
    3737  Constructor. the \b Update() method is called.
    38 */
    39 ResourceUsage::ResourceUsage()
    40 {
     38  \param pg: Process group RU_Self or RU_Children or RU_All
     39*/
     40ResourceUsage::ResourceUsage(RU_ProcGrp pg)
     41{
     42  procgrp = pg;
    4143  struct rlimit rl;
    4244  getrlimit(RLIMIT_DATA, &rl);
     
    9294{
    9395  struct rusage rsu;
    94   int rc = getrusage(RUSAGE_SELF, &rsu);
     96  int rc;
     97  if ((procgrp == RU_Self) || (procgrp == RU_All))
     98    rc = getrusage(RUSAGE_SELF, &rsu);
     99  else
     100    rc = getrusage(RUSAGE_CHILDREN, &rsu);
     101
    95102  delta_tottm = cur_tottm;
    96103  delta_rss = cur_rss;
    97104  cur_usrtm = s_timeval2msec(rsu.ru_utime);
    98105  cur_systm = s_timeval2msec(rsu.ru_stime);
     106  if (procgrp == RU_All) {
     107    struct rusage rsuch;
     108    rc = getrusage(RUSAGE_CHILDREN, &rsuch);
     109    cur_usrtm += s_timeval2msec(rsuch.ru_utime);
     110    cur_systm += s_timeval2msec(rsuch.ru_stime);   
     111  }
    99112  cur_tottm = cur_usrtm+cur_systm;
    100113  delta_tottm = cur_tottm-delta_tottm;
     
    130143  os << " --------------- ResourceUsage::Print(lp=" << lp
    131144     <<" ) --------------- " << endl;
    132   int load = getAverageCPULoad()*100.;
     145  int load = (int)(getAverageCPULoad()*100.);
    133146  os << " CPU-Usage= " << getCPUTime() << " Elapsed= " << getElapsedTime()
    134147     << " msec - Load= " << load << " %" << endl;
Note: See TracChangeset for help on using the changeset viewer.