JS在回收的时候会中断执行(回收100M大概会话费3-4ms)
JS设计之初是为了执行前端脚本,一旦执行完就没了
- 新生代:新变量存放的地方
- 老生代:新生代中变量经历了一次以上的复制还没有被回收,并且新生代的空间占用百分之二十五以上,那么救火被放到老生代中
新生代:新生代部分氛围两半。标记活的变量,将获得变量复制到另外一个中去,再清空那个
♻️宏观看回收过程:内存快满的时候,全局变量不回收;局部变量并且没有引用的时候就会回收;全局变量是所有代码都执行完了就会回收
老生代算法:标记、删除、整理
- 标记死亡变量
- 删除死亡变量
- 整理内存变成连续的
- 数组必须是连续内存