Esempio n. 1
0
 def __init__(self):
     Hour = FrameProfiler.Hour
     # how long to wait between frame profiles
     self._period = 2 * FrameProfiler.Minute
     if config.GetBool('frequent-frame-profiles', 0):
         self._period = 1 * FrameProfiler.Minute
     # used to prevent profile from being taken exactly every 'period' seconds
     self._jitterMagnitude = self._period * .75
     # when to log output
     # each entry must be an integer multiple of all previous entries
     # as well as an integer multiple of the period
     self._logSchedule = [
         1 * FrameProfiler.Hour,
         4 * FrameProfiler.Hour,
         12 * FrameProfiler.Hour,
         1 * FrameProfiler.Day,
     ]  # day schedule proceeds as 1, 2, 4, 8 days, etc.
     if config.GetBool('frequent-frame-profiles', 0):
         self._logSchedule = [
             1 * FrameProfiler.Minute,
             4 * FrameProfiler.Minute,
             12 * FrameProfiler.Minute,
             24 * FrameProfiler.Minute,
         ]
     for t in self._logSchedule:
         assert isInteger(t)
         # make sure the period is evenly divisible into each element of the log schedule
         assert (t % self._period) == 0
     # make sure each element of the schedule is evenly divisible into each subsequent element
     for i in xrange(len(self._logSchedule)):
         e = self._logSchedule[i]
         for j in xrange(i, len(self._logSchedule)):
             assert (self._logSchedule[j] % e) == 0
     assert isInteger(self._period)
     self._enableFC = FunctionCall(self._setEnabled,
                                   taskMgr.getProfileFramesSV())
Esempio n. 2
0
 def __init__(self):
     self._enableFC = FunctionCall(self._setEnabled, taskMgr.getProfileTasksSV())
     # table of task name pattern to TaskTracker
     self._namePrefix2tracker = {}
     self._task = None