您的位置:首页 > Web前端 > JavaScript

Javascript的内存释放实验心得

2011-12-27 19:02 204 查看
我以前也看过关于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也不会占用多少时间的,但的确是一个好习惯   :)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  javascript null html