Remove stream feature handlers on session_start.
Based on profiling, using around 35 stream handlers quarters the number of basic message stanzas that can be processed in a second, in comparison to only using the bare minimum of four handlers. To help, we can drop handlers for stream features once the session has started. So that we can re-enable these handlers when a stream must restart, the 'stream_start' event has been added which fires whenever a stream header is received. The 'stream_start' event is a more generic replacement for the existing start_stream_handler() method.
This commit is contained in:
@@ -1223,6 +1223,7 @@ class XMLStream(object):
|
||||
# as handshakes.
|
||||
self.stream_end_event.clear()
|
||||
self.start_stream_handler(root)
|
||||
self.event('stream_start', root, direct=True)
|
||||
depth += 1
|
||||
if event == b'end':
|
||||
depth -= 1
|
||||
|
||||
Reference in New Issue
Block a user