心得:Javascript的内存释放实验

213 篇文章 0 订阅
192 篇文章 0 订阅
我以前也看过关于javascript的内存释放的文章,但我从来也没仔细看过。原因:一来我觉得这个东西可有可无,二来,鬼知道这些理论到底有没有科学根据?

今天我做了一个小小的实验,证实内存释放还是有用的。

比如有如下程序:
var   a   =   new   Array();
..........

一般a用完了就完了,谁也不会想到去释放a所占用的内存。设想代码:
var   a   =   new   Array();
..........
a   =   null;

有没有用呢?我做了一个实验:

在editplus中编写如下代码:
<HTML> 
  <BODY> 
  <SCRIPT   LANGUAGE= "JavaScript "> 
//------      使用内存段
for   (var   i   =   0;   i    <   100000;   i++)
{
       eval( "a "   +   i   +    "=   new   Array(); ");
}
//--------释放内存段
for   (var   i   =   0;   i    <   100000;   i++)
{
       eval( "a "   +   i   +    "=   null; ");
}

  </SCRIPT> 
  </BODY> 
  </HTML> 

Ctrl+B   运行这个文件以后,我打开win2000的系统监视器,看系统的内存使用情况。结果如下:

在editplus不运行这个网页前,占用的内存大概为8000多K,如果没有加上释放内存段,运行后editplus大概要运行2-3分钟才完成,内存使用数逐步上升,最终占用内存为24000多K时.

而加上了释放内存段的代码后,editplus在开始的2-3分钟内,内存也逐步上升,到了24000多K后,内存占用量开始下降,在接下来的2-3分钟内,内存使用量逐步降到了15000多K.

结论,a   =   new   Array()后,   a   =   null;   释放的确还是有用的,特别是对大型网站。当然,也不是完全释放,比使用前还是要多占一些内存的。   其实,在用完一个数组后,加一个   =   null也不会占用多少时间的,但的确是一个好习惯   :)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值