Заметил я как-то, что моё многопоточное приложение подтекает по памяти. Написано оно на перле, использует HTTP::Tiny.

Думаю, в результате ковыряния заметил, что память остаётся занятой только при работе с https, http обрабатывается нормально. Погуглил, нашёл вот такую сатейку - https://stackoverflow.com/questions/3252045/perl-threads-slowly-consume-memory , там говорится, что во всём виноват модуль IO::Socket::SSL. Тем не менее в самом модуле есть такое:

...IO::Socket::SSL sockets will stay open until the program ends or you explicitly close them. This is due to the fact that a circular reference is required to make IO::Socket::SSL sockets act simultaneously like objects and glob references.

Судя по всему авторы HTTP::Tiny этот момент упустили.

Next Post