perl 如何释放内存
答案:3 悬赏:10
解决时间 2021-02-10 22:52
- 提问者网友:涼初透
- 2021-02-10 04:44
perl 如何释放内存
最佳答案
- 二级知识专家网友:陪我到地狱流浪
- 2021-02-10 06:23
perl有垃圾回收机制,不过采用的是一种简单的算法--引用计数,当某变量的引用数为0时会自动释放。
至于手动释放内存,严格来讲,perl里并不存在这样的function. 不过可以“近似地”做到。
undef %hash;
undef @array;或者:
%hash = ();
@array = ();perl的undef()函数有两个功能: 清除变量的内容,释放变量所占的buffers, 此时你可以近似地认为已经释放了内存。
但是注意,实际上并没有真正地释放内存。如果你了解perl的变量在内存里的存放结构,你就会发现,undef后,原变量所在的内存还是被占用的,任然保持着被分配时的状态。但是这块内存的状态被的标记被“reusable”, 当所有内存皆被用完,超出阈值时,这块"被标记"的且它的"引用数为0"的内存才会被释放。
至于手动释放内存,严格来讲,perl里并不存在这样的function. 不过可以“近似地”做到。
undef %hash;
undef @array;或者:
%hash = ();
@array = ();perl的undef()函数有两个功能: 清除变量的内容,释放变量所占的buffers, 此时你可以近似地认为已经释放了内存。
但是注意,实际上并没有真正地释放内存。如果你了解perl的变量在内存里的存放结构,你就会发现,undef后,原变量所在的内存还是被占用的,任然保持着被分配时的状态。但是这块内存的状态被的标记被“reusable”, 当所有内存皆被用完,超出阈值时,这块"被标记"的且它的"引用数为0"的内存才会被释放。
全部回答
- 1楼网友:傲娇菇凉
- 2021-02-10 08:01
1楼回答的比较全面了. 事实上, 你不需要问这个问题, 因为一般情况都不用考虑这个问题.
如果内存真的影响了你的工作, 那说明你的数据结构有问题. 算法上的节约内存才是最重要的. perl一旦申请了一块内存, 一般很难放回去, 直到程序运行结束.
- 2楼网友:走,耍流氓去
- 2021-02-10 07:41
perl有垃圾回收机制,不过采用的是一种简单的算法——引用计数,当某变量的引用数为0时会自动释放。
至于手动释放内存,严格来讲,perl里并不存在这样的function. 不过可以“近似地”做到。
1
2
undef %hash;
undef @array;
或者:
1
2
%hash = ();
@array = ();
perl的undef()函数有两个功能: 清除变量的内容,释放变量所占的buffers, 此时你可以近似地认为已经释放了内存。
但是注意,实际上并没有真正地释放内存。如果你了解perl的变量在内存里的存放结构,你就会发现,undef后,原变量所在的内存还是被占用的,任然保持着被分配时的状态。但是这块内存的状态被的标记被“reusable”, 当所有内存皆被用完,超出阈值时,这块“被标记”的且它的“引用数为0”的内存才会被释放。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯
• 手机登qq时,显示手机磁盘不足,清理后重新登 |
• 刺客的套装怎么选啊? |