我的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,则需要我们在不使用它的时候手工为它解除引用
解除引用的真正作用并不是意味着自动回收所占用的内存,而是让值脱离执行环境。以便垃圾收集器下次运行时将其收回

浙公网安备 33010602011771号