From afc675ba86f7b3e64b5975192012d947caa086fd Mon Sep 17 00:00:00 2001 From: Erik Johnston Date: Wed, 19 Jun 2024 10:43:33 +0100 Subject: [PATCH] Time atexit freeze --- synapse/app/_base.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/synapse/app/_base.py b/synapse/app/_base.py index 4cc260d551..722e817ffb 100644 --- a/synapse/app/_base.py +++ b/synapse/app/_base.py @@ -25,6 +25,7 @@ import os import signal import socket import sys +import time import traceback import warnings from textwrap import indent @@ -624,9 +625,16 @@ async def start(hs: "HomeServer") -> None: gc.collect() gc.freeze() + def exit() -> None: + start = time.time() + gc.freeze() + end = time.time() + + logger.info("GC freeze took %d ms", (end - start) * 1000) + # Speed up shutdowns by freezing all allocated objects. This moves everything # into the permanent generation and excludes them from the final GC. - atexit.register(gc.freeze) + atexit.register(exit) def reload_cache_config(config: HomeServerConfig) -> None: