如何访问Perl哈希的引用计数?

mmc*_*coo 13 perl

我正在尝试启用脚本的垃圾收集器来做得更好.它应该能够回收大量的内存,但有些东西正在阻止它.

我已经使用了Devel :: Cycle了一下,这让我更近了但是我不在那里.

如何找出Perl哈希的当前引用计数(我的对象的存储)?

有没有办法跟踪谁持有对象的引用?也许是一种领带说,只要有人指出这个对象,就要记住某个人是谁.

wil*_*ert 17

您正在寻找Devel :: Refcount.

  • 请记住 `Devel::Refcount::refcount` 和 `Devel::Peek::SvREFCNT` 之间的区别。她们不一样。请参阅 [我的问题](http://stackoverflow.com/questions/11344518/perl-why-do-develrefcountrefcount-and-develpeeksvrefcnt-disagree/11348337) 或`perldoc Devel::Refcount`。 (2认同)

Sin*_*nür 6

如果您担心将未使用的内存返回到操作系统,您应该知道这通常是不可能的.Perl程序的内存占用量将与程序生命周期内的最大分配成比例.

请参阅如何使我的Perl程序占用更少的内存?Perl FAQ列表中以及Mini-Tutorial:Perl的内存管理(正如@Evan Carroll在评论中指出的那样).