Поиск «утечек» в Python
У home_virtualis нашёл интересную статью о поиске «утечек» в Python на практике: «Exception #08: Поиск „утечек“ памяти в python-программе». Будет интересно всем тем, у кого в программе на Python неоправданно накапливаются ресурсы с каждой итерацией.
Кстати, с конечным выводом статьи я бы поспорил:
Память не «утекает» в python просто так. Если в программе есть рост используемых ресурсов, то практически всегда это обозначает плохую архитектуру с необоснованно долгим сроком жизни каких либо объектов.
Что называть «Пайтоном»? Если «голый» интерпретатор, то «текущих» популярных интерпретаторов сейчас, наверное, нет. Но язык без модулей мало кому нужен. Как только подключаются внешние (скомпилированные) модули, вот тут начинаются утечки и падения. Например, у меня «Пайтон» упал уже несколько раз при попытке использования µTidylib. Один раз — при попытке открыть несуществующий файл.
Мне кажется, что стабильность интерпретатора определяется ещё и стабильностью его популярных расширений. Хоть разработчики к ним отношения могут и не иметь, но без них язык не решает популярные задачи, ради которых его и изучают.
Зачем тебе Питон, ты же ПХП-программист.
Комментарий для coprophagous.ru:
Как ты это определил? Больше всего лет (по длительности) я программировал на Ассемблере (около 8), в последние годы, кроме PHP я часто и много программировал на JavaScript (языке куда более изящном, чем «Пайтон», на мой взгляд). А больше всего мне, наверное, нравится Lua.
CPython -- стандарт де-факто. Поэтому это утверждение неверно :-)
Женя! Ну нельзя же на основании одной библиотеки делать такие обобщения. По сути все гораздо лучше. Во-первых, всю стандартную библиотеку можно использовать без опасений (а там сишного кода довольно много). Потом, внешние библиотеки, написнные на Питоне же, тоже не текут по определению. Да и из действительно популярных сишных библиотек практически все отлажены хорошо. Кривые и текущие по памяти -- это скорее исключение.
Не пугай народ :-)
Да я пока сам себя больше пугаю :) Пайтон во мне вызывает какое-то внутреннее сопротивление, я не понимаю с чем связано, хотя знаю две достаточно базовые вещи в языке, которые кажутся неэстетичным костылями (да, знаю, и это после PHP, который из костылей состоит).
µTidylib — это что-то с чем-то. Падает от любого чиха, а с ним валится и Пайтон. Но других нестабильных библиотек не встречал пока.
А мне пайтон понравился. Внутреннее сопротивление у него, ишь, какая цаца!
Комментарий для coprophagous.ru:
Он тебе из-за отступов понравился.
Вань, а ты не мог бы поставить у себя на сайте класс photo на картинку, чтобы юзерпик в формате hCard читался?
Твое внутреннее сопротивление, наверное, связано с тем, что ты подходишь к Питону со своими парадигмами, которые в нем не работают. По крайней мере по твоим вопросам в мессенджере у меня именно такое впечатление складывается :-). Я вот за собой такого не помню, я помню, что стал на нем писать уже после того, как по внешним описаниям понял, что он мне нравится. Поэтому если у меня что-то не получалось, я понимал, что это я дурак, а не Питон кривой :-). Много позже уже стали видется и кривости Питона тоже, где ж их нет.
Только собрался ответить, а Ваня все уже за меня сказал. =) ППКС
Мне не нравятся две вещи:
a) декораторы
б) магические методы с двумя подчёркиваниями
ну а то, что я не могу многомерный список вывести по человечески тоже, да :) в PHP это просто, в Perl есть куча модулей, а в Python как? Я разбираю письмо и оно (со всеми цитатами) логично ложится в такую структуру. Но мне нужно контролировать правильно ли оно разобралось.
Комментарий для softwaremaniacs.org/about:
Посмотрим, появится ли юзерпик :)
Заодно и нормализацию проверю
Комментарий для Евгения Степанищева:
Женя, pprint тебе же помог с «красивым» выводом? =)
Комментарий для arikon.livejournal.com:
Нет, разве ты не помнишь? Я так и получил вывода с отступами.