作者littleshan (我要加入剑道社!)
看板perl
标题Re: [问题] garbage collection?
时间Thu May 5 20:31:43 2005
※ 引述《C6H5CH3 (甲苯)》之铭言:
: 我的程式必须开数百个thread
: 原本没有thread时一个loop会让记忆体的使用率增加200k左右
: 但我开了thread之後
: 每一个loop会让记忆体增加5~6MB
: 後来看了下面文章
: http://www.oreilly.com.tw/column_sleepless.php?id=j005
: 觉得原因可能跟上面说的一样
: 想请问perl有没有可以手动释放记忆体的方式
: 先谢过各位前辈...:)
perl使用reference counting
没有被reference到的变数会自动回收
和java用额外的thread不同
你的情况应该是使用许多global variable
perl使用interpreter thread
每个thread都有自己一份global variable
避免浪费的方法是宣告为shared如下
use threads;
use threads::shared;
my $foo : shared;
--
DO NOT disturb my programs!
--
From Archimedes' last word,
and may be my last word.
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.244.211