我的js读书笔记——垃圾收集机制

垃圾收集

标识无用变量的策略:1标记清除 :垃圾收集器在运行时会为每个存储在内存中的变量加上标记,然后,去掉环境中的变量以及被环境中的变量引用的变量的标记。最                                              后删除有标记的变量

                            2 引用计数:。。。。。。

                                             弊端,循环引用的出现

 会自动的调用window.CollectGarbage()

性能问题:周期运行

管理内存:分配给web浏览器的可用内存比桌面应用程序少(出于安全方面)。

          确保占用最少的内存,以让页面获得更好的性能。

          优化内存占用的最佳方式,为执行中的代码只保存必要的数据。一旦数据不再有用,最好通过将其值设置为           null来释放——解除引用(dereferencing)

 

 

 1 function createPerson(name){
 2    var localPerson = new Object();
 3    return localPerson;  
 4 }
 5 
 6 var globalperson = createPerson("Nicholas");
 7 
 8 //手工解除globalPerson的引用
 9 
10 globalPerson = null;

 

localPerson在函数createPerson()函数执行完毕后离开其执行环境,而globalPerson,则需要我们在不使用它的时候手工为它解除引用

解除引用的真正作用并不是意味着自动回收所占用的内存,而是让值脱离执行环境。以便垃圾收集器下次运行时将其收回

posted @ 2013-08-13 11:01  没头脑做前端  阅读(142)  评论(0)    收藏  举报