From d670067b89c91700bcce45936f22a7aa23217152 Mon Sep 17 00:00:00 2001 From: sickprodigy Date: Sat, 15 Nov 2025 10:32:04 -0500 Subject: [PATCH] fix: Optimize memory management in debug_force_send and send_discord_message functions --- Scripts/discord_webhook.py | 33 +++++++++++++++++++++++++++++---- 1 file changed, 29 insertions(+), 4 deletions(-) diff --git a/Scripts/discord_webhook.py b/Scripts/discord_webhook.py index 9108420..896062c 100644 --- a/Scripts/discord_webhook.py +++ b/Scripts/discord_webhook.py @@ -63,8 +63,18 @@ def debug_force_send(message): except: pass try: - gc.collect() - print("DBG_FORCE: mem final:", getattr(gc, "mem_free", lambda: 0)() // 1024, "KB") + import sys, gc + for m in ('urequests', 'ussl', 'ssl'): + if m in sys.modules: + try: + del sys.modules[m] + except: + pass + gc.collect(); gc.collect() + try: + print("DBG_FORCE: mem final:", getattr(gc, "mem_free", lambda: 0)() // 1024, "KB") + except: + pass except: pass @@ -174,14 +184,29 @@ def send_discord_message(message, username="Auto Garden Bot", is_alert=False, de resp.close() except: pass + # remove local refs and unload heavy modules to free peak RAM (urequests, ussl/ssl) try: - # remove large refs and force GC if 'resp' in locals(): del resp if 'body_bytes' in locals(): del body_bytes + if 'content' in locals(): del content + if 'user' in locals(): del user + if 'headers' in locals(): del headers if 'requests' in locals(): del requests except: pass try: - gc.collect() + import sys + # remove urequests and SSL modules from module cache so their memory can be reclaimed + for m in ('urequests', 'ussl', 'ssl'): + if m in sys.modules: + try: + del sys.modules[m] + except: + pass + except: + pass + try: + import gc + gc.collect(); gc.collect() except: pass \ No newline at end of file