LSST Applications g0265f82a02+0e5473021a,g02d81e74bb+f5613e8b4f,g1470d8bcf6+190ad2ba91,g14a832a312+311607e4ab,g2079a07aa2+86d27d4dc4,g2305ad1205+a8e3196225,g295015adf3+b67ee847e5,g2bbee38e9b+0e5473021a,g337abbeb29+0e5473021a,g3ddfee87b4+a761f810f3,g487adcacf7+17c8fdbcbd,g50ff169b8f+96c6868917,g52b1c1532d+585e252eca,g591dd9f2cf+65b5bd823e,g5a732f18d5+53520f316c,g64a986408d+f5613e8b4f,g6c1bc301e9+51106c2951,g858d7b2824+f5613e8b4f,g8a8a8dda67+585e252eca,g99cad8db69+6729933424,g9ddcbc5298+9a081db1e4,ga1e77700b3+15fc3df1f7,ga8c6da7877+ef4e3a5875,gb0e22166c9+60f28cb32d,gb6a65358fc+0e5473021a,gba4ed39666+c2a2e4ac27,gbb8dafda3b+e9bba80f27,gc120e1dc64+eee469a5e5,gc28159a63d+0e5473021a,gcf0d15dbbd+a761f810f3,gdaeeff99f8+f9a426f77a,ge6526c86ff+d4c1d4bfef,ge79ae78c31+0e5473021a,gee10cc3b42+585e252eca,gf1cff7945b+f5613e8b4f,w.2024.16
LSST Data Management Base Package
Loading...
Searching...
No Matches
Public Member Functions | Protected Attributes | List of all members
lsst.dax.apdb.timer.Timer Class Reference

Public Member Functions

 __init__ (self, str name="", bool doPrint=True)
 
Timer start (self)
 
Timer stop (self)
 
Timer dump (self)
 
str __str__ (self)
 
Timer __enter__ (self)
 
Any __exit__ (self, type|None exc_type, Any exc_val, Any exc_tb)
 

Protected Attributes

 _name
 
 _print
 
 _startReal
 
 _startUser
 
 _startSys
 
 _sumReal
 
 _sumUser
 
 _sumSys
 

Detailed Description

Instance of this class can be used to track consumed time.

This class is also a context manager and can be used in
a `with` statement. By default it prints consumed CPU time
and real time spent in a context.

Example:

    with Timer('SelectTimer'):
        engine.execute('SELECT ...')

Definition at line 38 of file timer.py.

Constructor & Destructor Documentation

◆ __init__()

lsst.dax.apdb.timer.Timer.__init__ ( self,
str name = "",
bool doPrint = True )
Parameters
----------
name : `str`
    Timer name, will be printed together with statistics.
doPrint : `bool`
    If True then print statistics on exist from context.

Definition at line 53 of file timer.py.

53 def __init__(self, name: str = "", doPrint: bool = True):
54 """
55 Parameters
56 ----------
57 name : `str`
58 Timer name, will be printed together with statistics.
59 doPrint : `bool`
60 If True then print statistics on exist from context.
61 """
62 self._name = name
63 self._print = doPrint
64
65 self._startReal = -1.0
66 self._startUser = -1.0
67 self._startSys = -1.0
68 self._sumReal = 0.0
69 self._sumUser = 0.0
70 self._sumSys = 0.0
71

Member Function Documentation

◆ __enter__()

Timer lsst.dax.apdb.timer.Timer.__enter__ ( self)
Enter context, start timer

Definition at line 117 of file timer.py.

117 def __enter__(self) -> Timer:
118 """
119 Enter context, start timer
120 """
121 self.start()
122 return self
123

◆ __exit__()

Any lsst.dax.apdb.timer.Timer.__exit__ ( self,
type | None exc_type,
Any exc_val,
Any exc_tb )
Exit context, stop and dump timer

Definition at line 124 of file timer.py.

124 def __exit__(self, exc_type: type | None, exc_val: Any, exc_tb: Any) -> Any:
125 """
126 Exit context, stop and dump timer
127 """
128 if exc_type is None:
129 self.stop()
130 if self._print:
131 self.dump()
132 return False

◆ __str__()

str lsst.dax.apdb.timer.Timer.__str__ ( self)

Definition at line 103 of file timer.py.

103 def __str__(self) -> str:
104 real = self._sumReal
105 user = self._sumUser
106 sys = self._sumSys
107 if self._startReal > 0:
108 real += time.time() - self._startReal
109 ru = resource.getrusage(resource.RUSAGE_SELF)
110 user += ru.ru_utime - self._startUser
111 sys += ru.ru_stime - self._startSys
112 info = "real=%.3f user=%.3f sys=%.3f" % (real, user, sys)
113 if self._name:
114 info = self._name + ": " + info
115 return info
116

◆ dump()

Timer lsst.dax.apdb.timer.Timer.dump ( self)
Dump timer statistics

Definition at line 96 of file timer.py.

96 def dump(self) -> Timer:
97 """
98 Dump timer statistics
99 """
100 _LOG.info("%s", self)
101 return self
102

◆ start()

Timer lsst.dax.apdb.timer.Timer.start ( self)
Start timer.

Definition at line 72 of file timer.py.

72 def start(self) -> Timer:
73 """
74 Start timer.
75 """
76 self._startReal = time.time()
77 ru = resource.getrusage(resource.RUSAGE_SELF)
78 self._startUser = ru.ru_utime
79 self._startSys = ru.ru_stime
80 return self
81

◆ stop()

Timer lsst.dax.apdb.timer.Timer.stop ( self)
Stop timer.

Definition at line 82 of file timer.py.

82 def stop(self) -> Timer:
83 """
84 Stop timer.
85 """
86 if self._startReal > 0:
87 self._sumReal += time.time() - self._startReal
88 ru = resource.getrusage(resource.RUSAGE_SELF)
89 self._sumUser += ru.ru_utime - self._startUser
90 self._sumSys += ru.ru_stime - self._startSys
91 self._startReal = -1.0
92 self._startUser = -1.0
93 self._startSys = -1.0
94 return self
95

Member Data Documentation

◆ _name

lsst.dax.apdb.timer.Timer._name
protected

Definition at line 62 of file timer.py.

◆ _print

lsst.dax.apdb.timer.Timer._print
protected

Definition at line 63 of file timer.py.

◆ _startReal

lsst.dax.apdb.timer.Timer._startReal
protected

Definition at line 65 of file timer.py.

◆ _startSys

lsst.dax.apdb.timer.Timer._startSys
protected

Definition at line 67 of file timer.py.

◆ _startUser

lsst.dax.apdb.timer.Timer._startUser
protected

Definition at line 66 of file timer.py.

◆ _sumReal

lsst.dax.apdb.timer.Timer._sumReal
protected

Definition at line 68 of file timer.py.

◆ _sumSys

lsst.dax.apdb.timer.Timer._sumSys
protected

Definition at line 70 of file timer.py.

◆ _sumUser

lsst.dax.apdb.timer.Timer._sumUser
protected

Definition at line 69 of file timer.py.


The documentation for this class was generated from the following file: