js 內存管理

內存生命週期

不管什麼程序語言,內存生命週期基本是一致的:
1. 分配你所需要的內存
2. 使用分配到的內存(讀、寫)
3. 不需要時將其釋放\歸還

垃圾回收

  1. 引用計數垃圾收集
    此算法把“對象是否不再需要”簡化定義爲“對象有沒有其他對象引用到它”。如果沒有引用指向該對象(零引用),對象將被垃圾回收機制回收。
    限制:無法處理循環引用
  2. 標記-清除算法
    這個算法假定設置一個叫做根(root)的對象(在Javascript裏,根是全局對象)。定期的,垃圾回收器將從根開始,找所有從根開始引用的對象,然後找這些對象引用的對象……從根開始,垃圾回收器將找到所有可以獲得的對象和所有不能獲得的對象。
    從2012年起,所有現代瀏覽器都使用了標記-清除垃圾回收算法。
    限制: 那些無法從根對象查詢到的對象都將被清除
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章