iT邦幫忙

2024 iThome 鐵人賽

DAY 14
0
自我挑戰組

認識JavaScript系列 第 14

[第十四天] Garbage Collection

  • 分享至 

  • xImage
  •  

Garbage Collection (垃圾回收)
指的是自動釋放不再使用的內存,以防止內存洩漏並優化性能。
在javascript中,是具有自動內存管理的,就是倚靠垃圾回收機制!
Garbage Collection也叫GC,自動檢查,找出不再被引用的物件並釋放。

怎麼運作

  • Reference Counting:
    每個物件都有自己的計數器,當變成0的時候,表示可以被回收。
  • Mark-and-Sweep:
    定期掃描後並標記仍然可以訪問的物件,未標記的就是為垃圾,於是清除未標記的並釋放內存。

特點

  • 自動化
  • 不可預測觸發時機:所以使用者無法直接控制。
  • 影響效能:會暫時中斷應用執行,特別是在處理大量內存時。

可以怎麼使用

  • 減少不必要的「全局」變數:因為一直存在,會導致占用過多。
  • 即時釋放引用對象:隨手將不需使用的物件設為「null」,可讓GC視為垃圾。
  • 小心Closures(閉包)
  • 避免循環引用:舉例↓ (不要參考來,參考去)
    let a = {}; let b = {}; a.ref = b; b.ref = a;

感想
了解「垃圾回收」的運作方式,是為了讓自己在撰寫時,不要寫出又臭又長的程式碼。
期許自己能再更簡潔一點啦!


上一篇
[第十三天] Generator
下一篇
[第十五天] 試著解題 2715. Timeout Cancellation
系列文
認識JavaScript30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言