关于垃圾回收CollectGarbage()的使用

探讨JavaScript中内存释放的方法,特别是在Internet Explorer浏览器中如何手动触发垃圾回收机制。文章指出,仅将变量设为null可能不足以即时释放内存,尤其是在IE中。介绍了js.lang.System.gc()方法和CollectGarbage()函数的使用,以及通过setTimeout定时调用以确保内存释放。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

网络上流传的关于JS释放内存的方式~ 大概就是只说过。将变量使用以后设置为 null,但是IE的GC是当鼠标点击最小化按钮时发生~~ 也就是说我们从程序上看已经释放了内存其实之前更本没有释放~~~

研究 jsvm 的时候,发现 js.lang.System 里面定义了 gc() 方法

System.gc = function ()
{
  if (System.isIeBrowser())
  {
    CollectGarbage();
    setTimeout("CollectGarbage();", 1);
  }
}

CollectGarbage() 好像是ie特有的一个函数,为什么通过setTimeout的方式调用,可能是防止上下文中的过程变量仍然有效的原因吧!

==============================================================================

可以在自己代码如此写:

// 每隔 10 秒释放一次内存
window.setInterval("CollectGarbage();", 10000);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值