🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
### 垃圾回收机制原理 ``` 垃圾收集器按固定时间间隔周期性的找出那些不再继续使用的变量,然后释放其占用的内存 ``` ### 局部变量 ``` 1. 只在函数执行的过程中存在,会为局部变量在栈(堆)内存上分配相应的空间 2. 函数执行结束,局部变量就没有存在的必要了 3. 垃圾回收器必须跟踪哪个变量可用哪个变量没用,对于不再有用的变量打上标记,以备将来收回其占用的内存 ``` ### 标记清除 ``` js中最常用的垃圾收集方式是标记清除 当变量进入环境,变量被标记进入环境,变量离开环境时,将其标记为离开环境 ``` ### 引用计数 ``` 种不太常见的垃圾收集策略叫做引用计数 当声明了一个变量并将一个引用类型值赋给该变量时,则这个值的引用次数就是 1 如果同一个值又被赋给另一个变量,则该值的引用次数加 1。相反,如果包含对这个值引用的变量又取 得了另外一个值,则这个值的引用次数减 1。当这个值的引用次数变成 0 时,则说明没有办法再访问这 个值了,因而就可以将其占用的内存空间回收回来。 ``` ### 性能问题 ``` ``` ### 管理内存 ``` 确保占用最少的内存可以让页面获得更好的性能。而优化内存占用的最佳方式,就是为执行 中的代码只保存必要的数据。一旦数据不再有用,最好通过将其值设置为 null 来释放其引用——这个 做法叫做解除引用(dereferencing)。这一做法适用于大多数全局变量和全局对象的属性。局部变量会在 它们离开执行环境时自动被解除引用 ```