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
This commit is contained in:

committed by
Lance Stout

parent
1baf139ca4
commit
deb52ad350
@@ -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)
|
||||
|
||||
|
Reference in New Issue
Block a user