Time atexit freeze

This commit is contained in:
Erik Johnston 2024-06-19 10:43:33 +01:00
parent bdf82efea5
commit afc675ba86

View file

@ -25,6 +25,7 @@ import os
import signal import signal
import socket import socket
import sys import sys
import time
import traceback import traceback
import warnings import warnings
from textwrap import indent from textwrap import indent
@ -624,9 +625,16 @@ async def start(hs: "HomeServer") -> None:
gc.collect() gc.collect()
gc.freeze() 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 # Speed up shutdowns by freezing all allocated objects. This moves everything
# into the permanent generation and excludes them from the final GC. # 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: def reload_cache_config(config: HomeServerConfig) -> None: