@peacock
HTML/CSS, JS, PHP, JAVA, C#, Ubuntu

Как избавиться от утечки памяти в скрипте на Python?

Добрый день!
Создано много поточное приложение с использованием библиотеки Thread. Несколько потоков (три) работают в бесконечном цикле while-true и с некоторой периодичностью обращаются либо к БД или к другому серверу через API, перезаписываются переменные, работает некоторая логика. Учтены все возможные исключения try-catch. Программа в целом выполняет свои функции, но очень сильно "жрёт" оперативную память. Программа запущена как сервис и за 2 дня работы заняла 1Гб 150 Мб оперативной памяти. Читал про сборщик GC, импортировал, подключил библиотеку, прописал функцию gc.collect(), но эффекта не последовало. Подскажите, пожалуйста, в циклической работе скрипта какие есть рекомендации по оптимизации? Я так полагаю, что после переприсваивания в оперативной памяти всё равно остаётся старое значение переменной. Что посоветуете?
  • Вопрос задан
  • 210 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Karpion
Apache устроен так, что его процессы (их несколько, они выполняют работу) выполняют некоторое количество запросов (указано в конфиге), а затем завершают работу. На смену умершим - главный процесс (он распределяют между ними работу) запускает новые процессы. Именно процессы, а не потоки.

Изучите "stateless программы", "мини-сервисы".
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы