예제 #1
0
파일: wsgi.py 프로젝트: rcthomas/decals-web
 def __call__(self, *args, **kwargs):
     mem0 = get_memusage(mmaps=False)
     result = self.app(*args, **kwargs)
     mem1 = get_memusage(mmaps=False)
     #print('App', app, 'args', args, 'kwargs', kwargs, file=sys.stderr)
     req = args[0]
     print('URL', req['REQUEST_URI'], file=sys.stderr)
     for k in ['VmSize', 'VmRSS', 'VmData']: #mem0.keys():
         v0,u0 = mem0[k]
         v1,u1 = mem1[k]
         v0 = int(v0)
         v1 = int(v1)
         if u0 != u1:
             print('  ', k, ':', v0,u0, '->', v1,u1, file=sys.stderr)
         if v1 > v0:
             print('  %-8s: up %8i %s to %8i %s' % (k, (v1-v0), u0, v1, u0), file=sys.stderr)
     return result
 def memusage(self, prefix=''):
     # Not logging at DEBUG: do nothing
     if self.log.getLevel() > self.log.DEBUG:
         return
     from astrometry.util.ttime import get_memusage
     mu = get_memusage()
     ss = []
     for key in ['VmPeak', 'VmSize', 'VmRSS', 'VmData']:
         if key in mu:
             ss.append(key + ': ' + ' '.join(mu[key]))
     if 'mmaps' in mu:
         ss.append('Mmaps: %i' % len(mu['mmaps']))
     if 'mmaps_total' in mu:
         ss.append('Mmaps: %i kB' % (mu['mmaps_total'] / 1024))
     self.log.debug(prefix + 'Memory: ' + ', '.join(ss))
 def memusage(self, prefix=''):
     # Not logging at DEBUG: do nothing
     if self.log.getThreshold() > pexLog.Log.DEBUG:
         return
     from astrometry.util.ttime import get_memusage
     mu = get_memusage()
     ss = []
     for key in ['VmPeak', 'VmSize', 'VmRSS', 'VmData']:
         if key in mu:
             ss.append(key + ': ' + ' '.join(mu[key]))
     if 'mmaps' in mu:
         ss.append('Mmaps: %i' % len(mu['mmaps']))
     if 'mmaps_total' in mu:
         ss.append('Mmaps: %i kB' % (mu['mmaps_total'] / 1024))
     self.log.logdebug(prefix + 'Memory: ' + ', '.join(ss))