JS 심화학습

메모리 누수

메모리 누수(Memory Leak)

더 이상 필요하지 않은 데이터가 해제되지 못하고 메모리를 계속 차지되는 현상입니다.

  • 불필요한 전역 변수 사용
  • 분리된 노드 참조
  • 해제하지 않은 타이머
  • 잘못된 클로저 사용
  1. 불필요한 전역 변수 사용
window.hello = 'hello world'
window.heropy = { name: 'heropy', age: 74}
  1. 분리된 노드 참조
const btn = document.querySelector('button')
btn.addEventListener('click', () => {
  const parent = document.querySelector('.parent')
  console.log(parent)
  parent && parent.remove()
})
  1. 해제하지 않은 타이머
let a = 0
const intervalId = setInterval(() => {
  a +=1
}, 100)
setTimeout(() => {
  console.log(a)
  clearInterval(intervalId)
}, 1000)
  1. 잘못된 클로저 사용
const getFn = () => {
  let a = 0
  return name => {
    a += 1
    console.log(a)
    return `hello ${name}~`
  }
}
const fn = getFn()
console.log(fn(`heropy`))
console.log(fn(`Neo`))
console.log(fn(`Lewis`)) 

0개의 댓글