From ed66ed758dbd1c926296aa227da8a82fff9166e1 Mon Sep 17 00:00:00 2001 From: Alexandre Flament Date: Fri, 16 Feb 2024 20:46:18 +0000 Subject: [mod] reduce memory footprint by not calling babel.Locale.parse at runtime babel.Locale.parse loads more than 60MB in RAM. The only purpose is to get: LOCALE_NAMES - searx.data.LOCALES["LOCALE_NAMES"] RTL_LOCALES - searx.data.LOCALES["RTL_LOCALES"] This commit calls babel.Locale.parse when the translations are update from weblate and stored in:: searx/data/locales.json This file can be build by:: ./manage data.locales By store these variables in searx.data when the translations are updated we save round about 65MB (usually 4 worker = 260MB of RAM saved. Suggested-by: https://github.com/searxng/searxng/discussions/2633#discussioncomment-8490494 Co-authored-by: Markus Heiser --- searx/data/__init__.py | 2 ++ 1 file changed, 2 insertions(+) (limited to 'searx/data/__init__.py') diff --git a/searx/data/__init__.py b/searx/data/__init__.py index 0822f4ac8..c79d1042f 100644 --- a/searx/data/__init__.py +++ b/searx/data/__init__.py @@ -15,6 +15,7 @@ __all__ = [ 'EXTERNAL_BANGS', 'OSM_KEYS_TAGS', 'ENGINE_DESCRIPTIONS', + 'LOCALES', 'ahmia_blacklist_loader', ] @@ -50,3 +51,4 @@ EXTERNAL_BANGS = _load('external_bangs.json') OSM_KEYS_TAGS = _load('osm_keys_tags.json') ENGINE_DESCRIPTIONS = _load('engine_descriptions.json') ENGINE_TRAITS = _load('engine_traits.json') +LOCALES = _load('locales.json') -- cgit v1.2.3