JS在回收的時候會中斷執行(回收100M大概會話費3-4ms)
JS設計之初是爲了執行前端腳本,一旦執行完就沒了
- 新生代:新變量存放的地方
- 老生代:新生代中變量經歷了一次以上的複製還沒有被回收,並且新生代的空間佔用百分之二十五以上,那麼救火被放到老生代中
新生代:新生代部分氛圍兩半。標記活的變量,將獲得變量複製到另外一箇中去,再清空那個
♻️宏觀看回收過程:內存快滿的時候,全局變量不回收;局部變量並且沒有引用的時候就會回收;全局變量是所有代碼都執行完了就會回收
老生代算法:標記、刪除、整理
- 標記死亡變量
- 刪除死亡變量
- 整理內存變成連續的
- 數組必須是連續內存