diff options
author | mathieui <mathieui@mathieui.net> | 2016-08-22 01:29:07 +0200 |
---|---|---|
committer | mathieui <mathieui@mathieui.net> | 2016-08-22 01:29:07 +0200 |
commit | 52cd8f4b226f22f78eae997212073011716cdd08 (patch) | |
tree | 12d502e9411a395bd165a531efc754331790277b /tests/test_stanza_base.py | |
parent | e28318c2711a1a3410fcefe2a6f292656056aeb3 (diff) | |
download | slixmpp-52cd8f4b226f22f78eae997212073011716cdd08.tar.gz slixmpp-52cd8f4b226f22f78eae997212073011716cdd08.tar.bz2 slixmpp-52cd8f4b226f22f78eae997212073011716cdd08.tar.xz slixmpp-52cd8f4b226f22f78eae997212073011716cdd08.zip |
Don’t trigger presence events on MUC presence
Specifically, previously, each MUC would be added as a roster item, and
then each join presence would be counted as a resource of that item,
triggering 1 to 5 events and more backend logic in slixmpp.
As a result, joining big rooms is tremendously slow, (JID() calls,
event() calls, __getitem__ calls for nothing), and takes RAM (a quick
tracemalloc tells me around 1 MiB for 3500 participants, i.e. 2 big IRC
rooms). Those resources may not necessarily be cleaned properly, leading
to memory leaks on long-term usage.
This is a micro-optimization that adds an attribute to roster items so
that MUC room events can be ignored safely while not affecting common
roster usage.
Diffstat (limited to 'tests/test_stanza_base.py')
0 files changed, 0 insertions, 0 deletions