Бот для телеги на python, как лучше оптимизировать?

Еще учусь писать на python.
Бот очень простой, добавляет посты он от аккаунта, юзербот, для сбора ссылок с канала ютуба, я использую апи ютуба, для скачивание видео по собранным ссылкам я использую yt_dlp.

Схема простая, собираю сначала ссылки за определенные дни, ссылки на видео, на одном ютуб канале в день по 150-170 видео выходит, пока идет сбор, ссылки хранятся в оперативной памяти, по завершению сбора, выгрузка ссылок идет в файл, далее идет обработка ссылок, заходит по ним и закачка видео и формирование поста и выгрузка юзерботом.

Что использую для бота:
pip install -r requirements.txt
hachoir==3.2.0
pandas==2.1.3
Telethon==1.32.1
yt_dlp>=2023.10.13
cryptg==0.4.0
google-api-python-client==2.108.0

Чем больше бот работает, тем больше он начинает есть оперативной памяти, но и процесс жрет 14%, а судя по скрину из ssh, оперативу жрет в данный момент 9.5%.

Вопрос, много ли? он кушает ресурсов?
657ab3480f36a812896407.png

Как бы вы оптимизировали? может не стоит записывать сбор ссылок в оперативную память, а как-то сразу в файл?
  • Вопрос задан
  • 97 просмотров
Пригласить эксперта
Ответы на вопрос 1
trapwalker
@trapwalker Куратор тега Python
Программист, энтузиаст
И как вы предлагаете провести аудит вашего кода без публикации этого кода?
Не понятно же что и как вы там храните в памяти.
Правильная архитектура и логирование легко позволяют отслеживать и находить утечки памяти. Часто потенциальные места видно по коду. Я так понимаю кроме утечек памяти у вас там не мало и других проблем, например ненадежное хранение состояния длительных процессов в случае перезапуска сервиса.
Если правильно построить архитектуру вашего сервиса и использовать персистентные хранилища (например БД) для промежуточных состояний, то даже утечки в сторонних внешних библиотеках для вас не будут проблемой, поскольку вы всегда можете ограничить ресурсы и безопасно перезагружать сервис на любом этапе его работы при недостатке памяти.
Ответ написан
Ваш ответ на вопрос

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

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