2009年5月12日星期二

[PerlChina] Re: 如何主动回收对象的内存空间

2009/5/12 cnhack TNT <cnhacktnt@gmail.com>
使用内置的函数 undef 即可

呃。。。undef 一般可以将原先引用的值的引用计数减 1,一般可以减到 0,所以一般会触发随后的回收(但经常也不是立即回收)。如果被 undef 掉的值的引用计数已经大于 1 的话,则 undef 将失效,呵呵。。。(当然,没做 weaken 的循环引用的东西就更没戏了,呵呵)

一般地,除非在 XS 级别上做一些手脚,将一个要回收的东西的引用计数全部置为 0(不知有无现成的 CPAN 模块?),perl 几乎总是使用引用计数这种所谓的"穷人的GC"(但同时比 JVM 那种 GC 更廉价)。

Cheers,
-agentzh

--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
 要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
 要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
 更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛

-~----------~----~----~----~------~----~------~--~---

没有评论: