[an error occurred while processing this directive]

Эксперименты по борьбе с утечками памяти Telegram Desktop
Известны жалобы о больших утечках памяти в Telegram Desktop на Linux, не
наблюдаемых в таких же объемах на других ОС, в частности Windows и FreeBSD. В
рамках проверки гипотезы о том, что дело в реализации системного аллокатора и
настройках автопроигрывания медиа, помогающие автору TDesktop энтузиасты
создали канал https://t.me/tdesktop_crash, продолжительная прокрутка которого
должна приводить к утечкам памяти. При этом при нормальном поведении закрытие
этого окна (переключение на другой чат) должна освобождать память.

Выяснилось, что на Windows при переключении чата память освобождается, на
обычном Linux glibc - не освобождаются несколько Гб, но происходит почти полное
освобождение через некоторое время, если запустить Telegram Desktop с
аллокатором jemalloc из FreeBSD (пример для Debian, подробности
см. в документации jemalloc):

  LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libjemalloc.so.2 telegram-desktop

Аналогичные (или даже лучше) результаты были получены на дистрибутивах без
glibc, например Alpine, где применяется musl.

Поскольку в разных дистрибутивах могут быть разные политики по сборке
(статически и без), и майнтейнеры могут испытывать проблемы с включением
решения, а современные аллокаторы сложны, и, возможно, glibc malloc может быть
соответствующим образом настроен, к экспериментам и помощи приглашаются знатоки.
 
13.05.2021 , Автор: nuclight , Источник: https://t.me/tdesktop_crash...
Ключи: telegram, memory, debug
Раздел:    Корень / Администратору / Система / Linux специфика / Оптимизация и тюнинг в Linux

[an error occurred while processing this directive]

[an error occurred while processing this directive]