Поиск «утечек» в Python

У home_virtualis нашёл интересную статью о поиске «утечек» в Python на практике: «Exception #08: Поиск «утечек» памяти в python-программе». Будет интересно всем тем, у кого в программе на Python неоправданно накапливаются ресурсы с каждой итерацией.

Кстати, с конечным выводом статьи я бы поспорил:

Память не «утекает» в python просто так. Если в программе есть рост используемых ресурсов, то практически всегда это обозначает плохую архитектуру с необоснованно долгим сроком жизни каких либо объектов.
Что называть «Пайтоном»? Если «голый» интерпретатор, то «текущих» популярных интерпретаторов сейчас, наверное, нет. Но язык без модулей мало кому нужен. Как только подключаются внешние (скомпилированные) модули, вот тут начинаются утечки и падения. Например, у меня «Пайтон» упал уже несколько раз при попытке использования µTidylib. Один раз — при попытке открыть несуществующий файл.

Мне кажется, что стабильность интерпретатора определяется ещё и стабильностью его популярных расширений. Хоть разработчики к ним отношения могут и не иметь, но без них язык не решает популярные задачи, ради которых его и изучают.
11 сентября 2008 19:56

coprophagous.ru (coprophagous.ru)
11 сентября 2008, 21:41

Зачем тебе Питон, ты же ПХП-программист.

bolk (bolknote.ru)
11 сентября 2008, 21:47, ответ предназначен coprophagous.ru:

Как ты это определил? Больше всего лет (по длительности) я программировал на Ассемблере (около 8), в последние годы, кроме PHP я часто и много программировал на JavaScript (языке куда более изящном, чем «Пайтон», на мой взгляд). А больше всего мне, наверное, нравится Lua.

isagalaev (softwaremaniacs.org/about)
11 сентября 2008, 22:42

Что называть «Пайтоном»? Если «голый» интерпретатор, то «текущих» популярных интерпретаторов сейчас, наверное, нет.
CPython -- стандарт де-факто. Поэтому это утверждение неверно :-)
Но язык без модулей мало кому нужен. Как только подключаются внешние (скомпилированные) модули, вот тут начинаются утечки и падения. Например, у меня «Пайтон» упал уже несколько раз при попытке использования µTidylib.
Женя! Ну нельзя же на основании одной библиотеки делать такие обобщения. По сути все гораздо лучше. Во-первых, всю стандартную библиотеку можно использовать без опасений (а там сишного кода довольно много). Потом, внешние библиотеки, написнные на Питоне же, тоже не текут по определению. Да и из действительно популярных сишных библиотек практически все отлажены хорошо. Кривые и текущие по памяти -- это скорее исключение.

Не пугай народ :-)

bolk (bolknote.ru)
11 сентября 2008, 23:26

Да я пока сам себя больше пугаю :) Пайтон во мне вызывает какое-то внутреннее сопротивление, я не понимаю с чем связано, хотя знаю две достаточно базовые вещи в языке, которые кажутся неэстетичным костылями (да, знаю, и это после PHP, который из костылей состоит).

µTidylib — это что-то с чем-то. Падает от любого чиха, а с ним валится и Пайтон. Но других нестабильных библиотек не встречал пока.

coprophagous.ru (coprophagous.ru)
11 сентября 2008, 23:43

А мне пайтон понравился. Внутреннее сопротивление у него, ишь, какая цаца!

bolk (bolknote.ru)
12 сентября 2008, 00:25, ответ предназначен coprophagous.ru:

Он тебе из-за отступов понравился.

bolk (bolknote.ru)
12 сентября 2008, 00:29

Вань, а ты не мог бы поставить у себя на сайте класс photo на картинку, чтобы юзерпик в формате hCard читался?

isagalaev (softwaremaniacs.org/about)
12 сентября 2008, 00:53

Твое внутреннее сопротивление, наверное, связано с тем, что ты подходишь к Питону со своими парадигмами, которые в нем не работают. По крайней мере по твоим вопросам в мессенджере у меня именно такое впечатление складывается :-). Я вот за собой такого не помню, я помню, что стал на нем писать уже после того, как по внешним описаниям понял, что он мне нравится. Поэтому если у меня что-то не получалось, я понимал, что это я дурак, а не Питон кривой :-). Много позже уже стали видется и кривости Питона тоже, где ж их нет.

homo-virtualis.livejournal.com (homo-virtualis.livejournal.com)
12 сентября 2008, 02:25

Только собрался ответить, а Ваня все уже за меня сказал. =) ППКС

bolk (bolknote.ru)
12 сентября 2008, 08:46

Мне не нравятся две вещи:

a) декораторы
б) магические методы с двумя подчёркиваниями

ну а то, что я не могу многомерный список вывести по человечески тоже, да :) в PHP это просто, в Perl есть куча модулей, а в Python как? Я разбираю письмо и оно (со всеми цитатами) логично ложится в такую структуру. Но мне нужно контролировать правильно ли оно разобралось.

bolk (bolknote.ru)
12 сентября 2008, 09:27, ответ предназначен isagalaev (softwaremaniacs.org/about):

Посмотрим, появится ли юзерпик :)

bolk (bolknote.ru)
12 сентября 2008, 10:07

Заодно и нормализацию проверю

arikon.livejournal.com (arikon.livejournal.com)
14 сентября 2008, 20:41, ответ предназначен bolk (bolknote.ru):

Женя, pprint тебе же помог с «красивым» выводом? =)

bolk (bolknote.ru)
14 сентября 2008, 23:21, ответ предназначен arikon.livejournal.com:

Нет, разве ты не помнишь? Я так и получил вывода с отступами.

Ваше имя или адрес блога (можно OpenID):

Текст вашего комментария, не HTML:

Кому бы вы хотели ответить (или кликните на его аватару)