Avillions
@Avillions
PHP Developer at Genesis

Какой профайлер для Python работает в режиме реального времени?

Добрый день, есть приложение работающее с модулем vk api "vk_api" и логами в нескольких потоках "threading" в фоне, на каждого пользователя по 2-3 потока. После совершения какого либо действия через api, в потоке срабатывает time.sleep что бы обойти лимит по количеству запросов.

Так вот в чем проблема, при количестве пользователей ~ >3 (6-9 потоков) в течении первых минут 20 приложение работает удовлетворительно, но где то через 20 минут начинает съедаться много оперативной памяти и приложение начинает тормозить с отправкой запросов. Чем больше пользователей программа обрабатывает, тем быстрее начинает тормозить.

Есть подозрения что где то идет утечка памяти, но так как я в Python новичок то не могу понять где.

Нужен профайлер для определения на что со временем тратится много памяти отображаемый информацию в режиме реального времени, так как приложение по задумке работает в бесконечном цикле в фоне. А cProfile насколько я понимаю отрабатывает только после завершения приложения.

Буду благодарен за любые советы =)
  • Вопрос задан
  • 1442 просмотра
Решения вопроса 3
svfat
@svfat
☺Нужен VPS? Два месяца бесплатно. Смотри профиль☺
Guppy\Heapy

from guppy import hpy; hp=hpy()
a = []
while True:
    a.append("some data")
    print hp.heap()


Запустив данный пример, вы увидите как растет использование памяти, что вызвано расширением списка a
Ответ написан
dizballanze
@dizballanze
Software developer at Yandex
один, два
или более простой вариант - New Relic
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы