perl 如何释放内存
2个回答
展开全部
perl有垃圾回收机制,不过采用的是一种简单的算法--引用计数,当某变量的引用数为0时会自动释放。
至于手动释放内存,严格来讲,perl里并不存在这样的function. 不过可以“近似地”做到。
undef %hash;
undef @array;
或者:
%hash = ();
@array = ();
perl的undef()函数有两个功能: 清除变量的内容,释放变量所占的buffers, 此时你可以近似地认为已经释放了内存。
但是注意,实际上并没有真正地释放内存。如果你了解perl的变量在内存里的存放结构,你就会发现,undef后,原变量所在的内存还是被占用的,任然保持着被分配时的状态。但是这块内存的状态被的标记被“reusable”, 当所有内存皆被用完,超出阈值时,这块"被标记"的且它的"引用数为0"的内存才会被释放。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询