Ignore:
Timestamp:
07/24/15 16:40:06 (9 years ago)
Author:
rlacroix
Message:

Timer: Avoid using heap allocations.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • XIOS/trunk/src/timer.cpp

    r501 r652  
    77namespace xios 
    88{ 
    9   using namespace std; 
    10   
    11   map<string,CTimer*> CTimer::allTimer ; 
     9  std::map<std::string,CTimer> CTimer::allTimer; 
    1210   
    13   CTimer::CTimer(const string& name_) : name(name_)  
     11  CTimer::CTimer(const std::string& name_) : name(name_)  
    1412  {  
    15     reset() ; 
     13    reset(); 
    1614  } 
    1715 
     
    2523    if (!suspended)  
    2624    { 
    27       traceEnd(name) ; 
    28       cumulatedTime+=getTime()-lastTime ; 
     25      traceEnd(name); 
     26      cumulatedTime += getTime() - lastTime; 
    2927    } 
    30     suspended=true ; 
     28    suspended = true; 
    3129  } 
    3230   
     
    3533    if (suspended)  
    3634    { 
    37       lastTime=getTime() ; 
    38       traceBegin(name) ; 
     35      lastTime = getTime(); 
     36      traceBegin(name); 
    3937    } 
    40     suspended=false ; 
     38    suspended = false; 
    4139  } 
    4240   
    4341  void CTimer::reset(void) 
    4442  { 
    45     cumulatedTime=0. ; 
    46     suspended=true ; 
     43    cumulatedTime = 0.; 
     44    suspended = true; 
    4745  } 
    4846   
    4947  double CTimer::getCumulatedTime(void) 
    5048  { 
    51     return cumulatedTime ; 
     49    return cumulatedTime; 
    5250  } 
    5351   
    54   CTimer& CTimer::get(const string name) 
     52  CTimer& CTimer::get(const std::string name) 
    5553  { 
    56     map<string,CTimer*>::iterator it ; 
    57     it=allTimer.find(name) ; 
    58     if (it==allTimer.end()) it=allTimer.insert(pair<string,CTimer*>(name,new CTimer(name))).first ; 
    59     return *(it->second) ; 
     54    std::map<std::string,CTimer>::iterator it = allTimer.find(name); 
     55    if (it == allTimer.end()) 
     56      it = allTimer.insert(std::make_pair(name, CTimer(name))).first; 
     57    return it->second; 
    6058  } 
    6159} 
Note: See TracChangeset for help on using the changeset viewer.