гуру.утечка памяти в скрипте perl, использующем while (1)
У меня есть скрипт perl, который нужно запускать в бесконечном цикле и контролировать загрузку среднего gnu/linux в среднем и бесплатно, и отправлять электронное письмо с использованием учетной записи google, если значение load/ram выше/ниже установленного значения.
я нашел эти
How can I find memory leaks in long-running Perl program?
и сделали, как предложено использовать UNDEF, но это не кажется, помогает, как, скорее всего, у меня есть что-то, что никогда не будет очищено/освобожденного.
here's a sample о том, как использование памяти постоянно увеличивается, и через день он может выделять довольно много баранов.
Here's the perl script. Может кто-нибудь указать мне где-нибудь, как это исправить. Благодарю.
+1 для подключения smtp. Я тоже это заметил. @ViruSzZ: Это занимает время, память и создает соединение на каждой итерации. Почему бы не создать его, только если вам это нужно, подпрограмма или нет? – simbabque
Да, вы были правы. Я сделал переписку, и теперь кажется, что сценарий не выделяет более 9 мб баранов. вот как переписывание выглядит => http://pastebin.com/1JJ50btn и соответствующее использование мем => http://pastebin.com/fVTs1pzj есть какие-либо советы я могу сделать для того, чтобы уменьшить использование памяти сценария? – ViruSzZ
Это 1,7% вашей оперативной памяти и устойчиво удерживается - даже если вы отрубите еще 25% от своего использования, вы никогда не заметите. Однако я бы добавил несколько подпрограмм - это упростит просмотр основного цикла и облегчит изменение различных частей скрипта. –