From 2428084c8d141b5defbfe738f163095ef8bd5be3 Mon Sep 17 00:00:00 2001 From: Emmanuel Gil Peyrot Date: Tue, 25 Sep 2018 21:55:25 +0200 Subject: Cache highlighting regex in a lru. This makes it way faster than having to create it all the time. --- poezio/tabs/muctab.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/poezio/tabs/muctab.py b/poezio/tabs/muctab.py index 17ab3430..405c2b1f 100644 --- a/poezio/tabs/muctab.py +++ b/poezio/tabs/muctab.py @@ -13,6 +13,7 @@ import logging import os import random import re +import functools from datetime import datetime from typing import Dict, Callable, List, Optional, Union, Set @@ -1251,6 +1252,9 @@ class MucTab(ChatTab): 1, self.width, self.height - 2 - self.core.information_win_size - Tab.tab_win_height(), 0) + # This maxsize is kinda arbitrary, but most users won’t have that many + # nicknames anyway. + @functools.lru_cache(maxsize=8) def build_highlight_regex(self, nickname): return re.compile(r"(^|\W)" + re.escape(nickname) + r"(\W|$)", re.I) -- cgit v1.2.3