Поиск «утечек» в Python
У home_virtualis нашёл интересную статью о поиске «утечек» в Python на практике: «Exception #08: Поиск „утечек“ памяти
Кстати, с конечным выводом статьи я бы поспорил:
Память не «утекает» в python просто так. Если в программе есть рост используемых ресурсов, то практически всегда это обозначает плохую архитектуру с необоснованно долгим сроком жизни каких либо объектов.
Что называть «Пайтоном»? Если «голый» интерпретатор, то «текущих» популярных интерпретаторов сейчас, наверное, нет. Но язык без модулей мало кому нужен. Как только подключаются внешние (скомпилированные) модули, вот тут начинаются утечки и падения. Например, у меня «Пайтон» упал уже несколько раз при попытке использования µTidylib. Один раз — при попытке открыть несуществующий файл.
Мне кажется, что стабильность интерпретатора определяется ещё и стабильностью его популярных расширений. Хоть разработчики к ним отношения могут и не иметь, но без них язык не решает популярные задачи, ради которых его и изучают.
Комментарии 14
CPython -- стандартде-факто. Поэтому это утверждение неверно :-)
Женя! Ну нельзя же на основании одной библиотеки делать такие обобщения. По сути все гораздо лучше.Во-первых, всю стандартную библиотеку можно использовать без опасений (а там сишного кода довольно много). Потом, внешние библиотеки, написнные на Питоне же, тоже не текут по определению. Да и из действительно популярных сишных библиотек практически все отлажены хорошо. Кривые и текущие по памяти -- это скорее исключение.
:-)
Не пугай народ
µTidylib — это
Он тебе
a) декораторы
б) магические методы с двумя подчёркиваниями
ну а то, что я не могу многомерный список вывести по человечески тоже, да :) в PHP это просто, в Perl есть куча модулей, а в Python как? Я разбираю письмо и оно (со всеми цитатами) логично ложится в такую структуру. Но мне нужно контролировать правильно ли оно разобралось.
Посмотрим, появится ли юзерпик :)
Женя, pprint тебе же помог с «красивым» выводом? =)