From 77642d2876a48f92bc12036dbd9b176b46368f5c Mon Sep 17 00:00:00 2001 From: Ilya Fedin Date: Wed, 25 Jun 2025 22:06:05 +0000 Subject: [PATCH] Limit the amount of malloc arenas and call malloc_trim periodically with glibc To prevent excessive memory usage looking like memory leak --- .../SourceFiles/platform/linux/integration_linux.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/Telegram/SourceFiles/platform/linux/integration_linux.cpp b/Telegram/SourceFiles/platform/linux/integration_linux.cpp index e3e331cd7b..f36bfb6326 100644 --- a/Telegram/SourceFiles/platform/linux/integration_linux.cpp +++ b/Telegram/SourceFiles/platform/linux/integration_linux.cpp @@ -22,6 +22,10 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include #include +#ifdef __GLIBC__ +#include +#endif // __GLIBC__ + namespace Platform { namespace { @@ -166,6 +170,14 @@ LinuxIntegration::LinuxIntegration() g_warning("Qt is running without GLib event loop integration, " "expect various functionality to not to work."); } + +#ifdef __GLIBC__ + mallopt(M_ARENA_MAX, 1); + QObject::connect( + QCoreApplication::eventDispatcher(), + &QAbstractEventDispatcher::aboutToBlock, + [] { malloc_trim(0); }); +#endif // __GLIBC__ } void LinuxIntegration::init() {