Changeset 1750 for XIOS


Ignore:
Timestamp:
10/18/19 14:30:54 (5 years ago)
Author:
ymipsl
Message:

Improve timer and tracing functionnalities

YM

Location:
XIOS/dev/dev_ym/XIOS_ONE_SIDED/src
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • XIOS/dev/dev_ym/XIOS_ONE_SIDED/src/timer.cpp

    r1639 r1750  
    1111  std::map<std::string,CTimer> CTimer::allTimer; 
    1212   
    13   CTimer::CTimer(const std::string& name_) : name(name_)  
     13  CTimer::CTimer(const std::string& name_, bool trace) : name(name_)  
    1414  {  
     15    isTracing_=trace ; 
    1516    reset(); 
    1617  } 
     
    2526    if (!suspended)  
    2627    { 
    27       traceEnd(name); 
     28      if (isTracing_) traceEnd(name); 
    2829      cumulatedTime += getTime() - lastTime; 
    2930    } 
     
    3637    { 
    3738      lastTime = getTime(); 
    38       traceBegin(name); 
     39      if (isTracing_) traceBegin(name); 
    3940    } 
    4041    suspended = false; 
     
    5253  } 
    5354   
    54   CTimer& CTimer::get(const std::string name) 
     55  CTimer& CTimer::get(const std::string name, bool trace) 
    5556  { 
    5657    std::map<std::string,CTimer>::iterator it = allTimer.find(name); 
    5758    if (it == allTimer.end()) 
    58       it = allTimer.insert(std::make_pair(name, CTimer(name))).first; 
     59      it = allTimer.insert(std::make_pair(name, CTimer(name,trace))).first; 
    5960    return it->second; 
    6061  } 
  • XIOS/dev/dev_ym/XIOS_ONE_SIDED/src/timer.hpp

    r1158 r1750  
    1313      double lastTime; 
    1414      bool suspended; 
     15      bool isTracing_ ; 
    1516      std::string name; 
    1617 
    17       CTimer(const std::string& name); 
     18      CTimer(const std::string& name, bool trace=true); 
    1819      void suspend(void); 
    1920      void resume(void); 
     
    2223      static std::map<std::string,CTimer> allTimer; 
    2324      static double getTime(void); 
    24       static CTimer& get(std::string name); 
     25      static CTimer& get(std::string name, bool trace=true); 
    2526      static std::string getAllCumulatedTime(void) ; 
    2627  }; 
  • XIOS/dev/dev_ym/XIOS_ONE_SIDED/src/tracer.cpp

    r1657 r1750  
    2525  std::map<std::string,int> regionId ; 
    2626  int count=0 ; 
     27  bool traceIsOn=true ; 
     28  int stackOnOffdeep=0 ; 
    2729   
    2830  void traceOn(void) 
    2931  { 
     32    stackOnOffdeep-- ; 
     33    if (stackOnOffdeep!=0) return ; 
     34    traceIsOn=true;  
     35 
    3036#if defined(VTRACE) 
    3137    VT_ON() ; 
     
    3945  void traceOff(void)  
    4046  { 
     47    stackOnOffdeep++ ; 
     48    if (stackOnOffdeep!=1) return ; 
     49    traceIsOn=false;  
    4150#if defined(VTRACE) 
    4251    VT_OFF() ; 
     
    5160  { 
    5261#if defined(VTRACE) 
    53     VT_USER_START(name.c_str()) ; 
     62     
     63    if (traceIsOn) VT_USER_START(name.c_str()) ; 
    5464#elif defined(SCOREP) 
    5565    SCOREP_USER_REGION_BY_NAME_BEGIN(name.c_str(),SCOREP_USER_REGION_TYPE_COMMON) 
     
    7686  { 
    7787#if defined (VTRACE) 
    78     VT_USER_END(name.c_str()) ; 
     88    if (traceIsOn) VT_USER_END(name.c_str()) ; 
    7989#elif defined(SCOREP) 
    8090    SCOREP_USER_REGION_BY_NAME_END(name.c_str()) 
Note: See TracChangeset for help on using the changeset viewer.