【12】內存溢出與內存泄漏

內存溢出與內存泄露

1、內存溢出

  • 一種程序運行出現的錯誤。
  • 當程序運行須要的內存超過了剩餘的內存時, 就出拋出內存溢出的錯誤。

clipboard.png

2、內存泄漏

  • 佔用的內存沒有及時釋放。
  • 內存泄露積累多了就容易致使內存溢出。
  • 常見的內存泄露:javascript

    • 意外的全局變量。
    • 沒有及時清理的計時器或回調函數。
    • 閉包
// 1. 內存溢出
var obj = {}
for (var i = 0; i < 10000; i++) {
  obj[i] = new Array(10000000)
  console.log('-----')
}

// 2. 內存泄露
// 意外的全局變量,沒有加var
function fn() {
  a = new Array(10000000)
  console.log(a)
}
fn()

// 3. 沒有及時清理的計時器或回調函數
var intervalId = setInterval(function () { //啓動循環定時器後不清理
  console.log('----')
}, 1000)

// clearInterval(intervalId)

// 4. 閉包
function fn1() {
  var a = 4
  function fn2() {
    console.log(++a)
  }
  return fn2
}
var f = fn1()
f()
// f = null
相關文章
相關標籤/搜索