Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 26, 2016 23:32:29

alex925
Зарегистрирован: 2015-01-08
Сообщения: 204
Репутация: +  14  -
Профиль   Отправить e-mail  

Утечки памяти

Подскажите пожалуйста, как найти место где течет память?

Офлайн

#2 Июнь 27, 2016 08:57:23

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  252  -
Профиль   Отправить e-mail  

Утечки памяти

Вы не хотите как-то конкретизировать вопрос? Почему вы вообще решили что она течет?

В том виде как у вас задан вопрос. Отключать участки кода и выполнять тест что она течет. :)

Поскольку обычно никто не жалуется что она течет, надо начать с компилированных модулей.



Отредактировано doza_and (Июнь 27, 2016 08:58:42)

Офлайн

#3 Июнь 27, 2016 11:02:00

alex925
Зарегистрирован: 2015-01-08
Сообщения: 204
Репутация: +  14  -
Профиль   Отправить e-mail  

Утечки памяти

Есть программа, которая парсит данные с сети и отображает их в gui. После каждого запуска обновления занимаемая память увеличивается на несколько мб, таким образом программа через некоторое время достигает 1 гб и т д
Это на столько жестко, что если открыть системный монитор и начать обновлять программу, то она с 40 мб на глазах вырастает до 200 (после n попыток обновить данные).

Офлайн

#4 Июнь 27, 2016 11:15:45

ZerG
Зарегистрирован: 2012-04-05
Сообщения: 2584
Репутация: +  60  -
Профиль   Отправить e-mail  

Утечки памяти

Ну так это не утечка памяти! Это у вас в программе в каком то месте не сделан выход.
Или очистка данных перед обновлением.
Просмотрите внимательно код! Может вы файл(коннект к бд) где-то не закрываете?



Влодение рускай арфаграфией - это как владение кунг-фу: настаящие мастира не преминяют ево бес ниабхадимости

Офлайн

#5 Июнь 27, 2016 11:28:02

Shaman
Зарегистрирован: 2013-03-15
Сообщения: 1369
Репутация: +  88  -
Профиль   Отправить e-mail  

Утечки памяти

Вообще - не обязательно в этом случае, утечки быть могут. Причины: циклические ссылки и неправильное использование __del__.
Загляните в документацию около gc.garbage

Офлайн

#6 Июнь 27, 2016 11:37:30

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9726
Репутация: +  843  -
Профиль   Отправить e-mail  

Утечки памяти

alex925
как найти место где течет память?
Скорее всего, это какой-то список заполняется многократно, но без предварительной очистки.



Офлайн

#7 Июнь 27, 2016 18:50:38

alex925
Зарегистрирован: 2015-01-08
Сообщения: 204
Репутация: +  14  -
Профиль   Отправить e-mail  

Утечки памяти

py.user.next
да в том, то и дело, что не нахожу такого места

Офлайн

#8 Июнь 27, 2016 19:12:31

4kpt_IV
Зарегистрирован: 2016-01-08
Сообщения: 999
Репутация: +  49  -
Профиль   Отправить e-mail  

Утечки памяти

Профилировщиком гоняли?

Офлайн

#9 Июнь 28, 2016 05:14:06

PooH
От:
Зарегистрирован: 2006-12-05
Сообщения: 1948
Репутация: +  72  -
Профиль   Отправить e-mail  

Утечки памяти

Самому это делать не приходилось, но модуль gc умеет отображать свою статистику. Сделайте сброс его данных в логи в нескольких местах программы и погоняйте.



Вот здесь один из первых отарков съел лаборанта. Это был такой умный отарк, что понимал даже теорию относительности. Он разговаривал с лаборантом, а потом бросился на него и загрыз…

Офлайн

#10 Июнь 28, 2016 12:32:57

sander
Зарегистрирован: 2015-02-19
Сообщения: 317
Репутация: +  53  -
Профиль   Отправить e-mail  

Утечки памяти

alex925
memprof, objgraph

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version