Как я могу получить доступ к подсчету ссылок хэша Perl? - PullRequest
13 голосов
/ 17 февраля 2010

Я пытаюсь разрешить сборщику мусора моего скрипта работать лучше. Есть тонна памяти, которую он должен восстановить, но что-то его останавливает.

Я использовал Devel :: Cycle немного, и это позволило мне подойти ближе, но я не совсем там.

Как узнать текущий счетчик ссылок для хэша Perl (хранилища для моих объектов)?

Есть ли способ отследить, кто держит ссылку на объект? Возможно, это своего рода галстук, в котором говорится, что всякий раз, когда кто-то указывает на этот объект, помните, кто этот человек.

Ответы [ 2 ]

17 голосов
/ 17 февраля 2010

Вы ищете Devel :: Refcount .

6 голосов
/ 17 февраля 2010

Если вы беспокоитесь о возврате неиспользуемой памяти в ОС, вы должны знать, что это вообще невозможно. Объем памяти вашей Perl-программы будет пропорционален наибольшему выделению за время жизни вашей программы.

См. Как я могу заставить мою программу на Perl занимать меньше памяти? в списке часто задаваемых вопросов по Perl , а также Мини-руководство: Управление памятью Perl указал @Evan Carroll в комментариях).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...