summary refs log tree commit diff
path: root/synapse/events
diff options
context:
space:
mode:
authorErik Johnston <erik@matrix.org>2016-03-23 16:54:59 +0000
committerErik Johnston <erik@matrix.org>2016-03-23 16:54:59 +0000
commit647b041d1af28a04004cda42a354259ef7cdc479 (patch)
treedccf33e860071251238ccdf5c1b6dbab9270e6eb /synapse/events
parentMerge pull request #664 from matrix-org/erikj/public_room_list (diff)
parentSimplify intern_dict (diff)
downloadsynapse-647b041d1af28a04004cda42a354259ef7cdc479.tar.xz
Merge pull request #666 from matrix-org/erikj/intern
Intern lots of strings
Diffstat (limited to 'synapse/events')
-rw-r--r--synapse/events/__init__.py5
1 files changed, 5 insertions, 0 deletions
diff --git a/synapse/events/__init__.py b/synapse/events/__init__.py
index abed6b5e6b..23f8b612ae 100644
--- a/synapse/events/__init__.py
+++ b/synapse/events/__init__.py
@@ -14,6 +14,7 @@
 # limitations under the License.
 
 from synapse.util.frozenutils import freeze
+from synapse.util.caches import intern_dict
 
 
 # Whether we should use frozen_dict in FrozenEvent. Using frozen_dicts prevents
@@ -140,6 +141,10 @@ class FrozenEvent(EventBase):
 
         unsigned = dict(event_dict.pop("unsigned", {}))
 
+        # We intern these strings because they turn up a lot (especially when
+        # caching).
+        event_dict = intern_dict(event_dict)
+
         if USE_FROZEN_DICTS:
             frozen_dict = freeze(event_dict)
         else: