From deb52ad3502a94f91ef5400bf5b7605b8e151f50 Mon Sep 17 00:00:00 2001 From: Vijay Pandurangan Date: Sun, 20 Nov 2011 03:30:44 +0800 Subject: This change stops sleekxmpp from spending huge amounts of time unnecessarily computing logging data that may never be used. This is a HUGE performance improvement; in some of my test runs, unnecessary string creation was accounting for > 60% of all CPU time. Note that using % in a string will _always_ perform the sting substitutions, because the strings are constructed before the function is called. So log.debug('%s' % expensiveoperation()) will take about the same CPU time whether or not the logging level is DEBUG or INFO. if you use , no substitutions are performed unless the string is actually logged --- sleekxmpp/stanza/rootstanza.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'sleekxmpp/stanza/rootstanza.py') diff --git a/sleekxmpp/stanza/rootstanza.py b/sleekxmpp/stanza/rootstanza.py index 470a1225..2ac47d8b 100644 --- a/sleekxmpp/stanza/rootstanza.py +++ b/sleekxmpp/stanza/rootstanza.py @@ -80,8 +80,7 @@ class RootStanza(StanzaBase): self['error']['type'] = 'cancel' self.send() # log the error - log.exception('Error handling {%s}%s stanza' % - (self.namespace, self.name)) + log.exception('Error handling {%s}%s stanza' , self.namespace, self.name) # Finally raise the exception to a global exception handler self.stream.exception(e) -- cgit v1.2.3