Reduce size of joined_user cache

The _get_joined_users_from_context cache stores a mapping from user_id
to avatar_url and display_name. Instead of storing those in a dict,
store them in a namedtuple as that uses much less memory.

We also try converting the string to ascii to further reduce the size.
This commit is contained in:
Erik Johnston 2017-04-25 14:38:51 +01:00
parent 22f3d3ae76
commit d9aa645f86
4 changed files with 40 additions and 11 deletions

View file

@ -40,3 +40,17 @@ def is_ascii(s):
return False
else:
return True
def to_ascii(s):
"""Converts a string to ascii if it is ascii, otherwise leave it alone.
If given None then will return None.
"""
if s is None:
return None
try:
return s.encode("ascii")
except UnicodeEncodeError:
return s