[Moscow.pm] tie Berkeley. Разобрался!!!

Vladimir Timofeev vovkasm на gmail.com
Чт Окт 25 00:44:09 PDT 2012


25 октября 2012 г., 11:06 пользователь Roman Parshin
<roman.dev на gmail.com> написал:
> Am 24.10.2012 15:44, schrieb ksvs:
>
>> А какие есть хорошие инструменты для обнаружения утечек памяти?
>
>
> Я, если честно, не знаю никаких, все руками обычно. Тут надо смотреть, если
> у Вас процессы вырастают сразу до 30М а потом не растут больше - я бы,
> наверное, даже не стал заморачиваться (хотя смотря сколько процессов). Если
> же они растут постоянно, пока не сожрут всю память - то, конечно, надо
> искать причину. По моему опыту - обычно не удаляются ненужные элементы из
> массива или хеша после использования.

У Perl действительно все не просто с использованием памяти ;-)
Но средства есть:
0. valgrind - для детекта утечек в XS
1. Test::LeakTrace - можно убедиться что конкретный блок кода не течет
2. Test::Memory::Cycle - можно убедиться, что у сложного объекта нет "циклов"
3*. Недавно Tim::Bunce презентовал Devel::SizeMe, пока сырой, но в
будущем может стать универсальным инструментом для отладки
использования памяти (как Devel::NYTProf для профилирования)
Есть еще модули, но я их не смог использовать по той или иной причине...

4. Еще мои знакомые некоторые делают так в тестах. Берут
BSD::Resource, меряют использование памяти до, дальше гоняют нужный
блок 1000 или больше раз, потом меряют использование после. Тоже
работает, хоть я такой подход и не люблю.

>
>
>
>
>>
>> ----- Original Message -----
>> From: Roman Parshin <roman.dev на gmail.com>
>> To: moscow-pm на pm.org
>> Cc:
>> Sent: Wednesday, 24 October 2012, 16:31
>> Subject: Re: [Moscow.pm] tie Berkeley. Разобрался!!!
>>
>> Am 24.10.2012 15:19, schrieb ksvs:
>>>
>>> Так здорово выходит.
>>> Вот только, что-то дочерние процессы по-немного разрастаются.
>>> Уже под 30М, а главный 16.
>>
>> Ты где-то не подчищаешь память.
>>
>>> Если не пропадет желание, сделаю вариант потом с AnyEvent::HTTP, в одном
>>> процессе правда.
>>> Нет, наверно не сделаю.
>>
>> С AnyEvent::HTTP надо было начинать :)
>>
>> --
>> Roman Parshin
>> <roman.dev на gmail.com>
>>
>>
>> -- Moscow.pm mailing list
>> moscow-pm на pm.org | http://moscow.pm.org
>>
>
>
> --
> Roman Parshin
> <roman.dev на gmail.com>
>
> --
> Moscow.pm mailing list
> moscow-pm на pm.org | http://moscow.pm.org



-- 
Vladimir Timofeev <vovkasm на gmail.com>


Подробная информация о списке рассылки Moscow-pm