contrib/perf.py
changeset 42364 a09829e14fc0
parent 42360 3293086ff663
child 42370 c2d10506725c
equal deleted inserted replaced
42363:b02f3aa2fab5 42364:a09829e14fc0
   272     """dummy context manager"""
   272     """dummy context manager"""
   273     def __enter__(self):
   273     def __enter__(self):
   274         pass
   274         pass
   275     def __exit__(self, *args):
   275     def __exit__(self, *args):
   276         pass
   276         pass
       
   277 
       
   278 NOOPCTX = noop()
   277 
   279 
   278 def gettimer(ui, opts=None):
   280 def gettimer(ui, opts=None):
   279     """return a timer function and formatter: (timer, formatter)
   281     """return a timer function and formatter: (timer, formatter)
   280 
   282 
   281     This function exists to gather the creation of formatter in a single
   283     This function exists to gather the creation of formatter in a single
   403     gc.collect()
   405     gc.collect()
   404     results = []
   406     results = []
   405     begin = util.timer()
   407     begin = util.timer()
   406     count = 0
   408     count = 0
   407     if profiler is None:
   409     if profiler is None:
   408         profiler = noop()
   410         profiler = NOOPCTX
   409     for i in xrange(prerun):
   411     for i in xrange(prerun):
   410         if setup is not None:
   412         if setup is not None:
   411             setup()
   413             setup()
   412         func()
   414         func()
   413     keepgoing = True
   415     keepgoing = True
   415         if setup is not None:
   417         if setup is not None:
   416             setup()
   418             setup()
   417         with profiler:
   419         with profiler:
   418             with timeone() as item:
   420             with timeone() as item:
   419                 r = func()
   421                 r = func()
       
   422         profiler = NOOPCTX
   420         count += 1
   423         count += 1
   421         results.append(item[0])
   424         results.append(item[0])
   422         cstop = util.timer()
   425         cstop = util.timer()
   423         # Look for a stop condition.
   426         # Look for a stop condition.
   424         elapsed = cstop - begin
   427         elapsed = cstop - begin