diff options
| -rw-r--r-- | mail/src/leap/mail/imap/service/imap.py | 15 | 
1 files changed, 15 insertions, 0 deletions
| diff --git a/mail/src/leap/mail/imap/service/imap.py b/mail/src/leap/mail/imap/service/imap.py index b79d42d..1175cdc 100644 --- a/mail/src/leap/mail/imap/service/imap.py +++ b/mail/src/leap/mail/imap/service/imap.py @@ -25,6 +25,7 @@ from twisted.internet import defer, threads  from twisted.internet.protocol import ServerFactory  from twisted.internet.error import CannotListenError  from twisted.mail import imap4 +from twisted.python import log  logger = logging.getLogger(__name__) @@ -71,6 +72,15 @@ DO_MANHOLE = os.environ.get("LEAP_MAIL_MANHOLE", None)  if DO_MANHOLE:      from leap.mail.imap.service import manhole +DO_PROFILE = os.environ.get("LEAP_PROFILE", None) +if DO_PROFILE: +    import cProfile +    log.msg("Starting PROFILING...") + +    PROFILE_DAT = "/tmp/leap_mail_profile.pstats" +    pr = cProfile.Profile() +    pr.enable() +  class IMAPAuthRealm(object):      """ @@ -140,6 +150,11 @@ class LeapIMAPFactory(ServerFactory):                   disk in another thread.          :rtype: Deferred          """ +        if DO_PROFILE: +            log.msg("Stopping PROFILING") +            pr.disable() +            pr.dump_stats(PROFILE_DAT) +          ServerFactory.doStop(self)          if cv is not None: | 
