iT邦幫忙

0

內存洩漏

想請問甚麼是內存洩漏?

或者可以舉個簡單的例子來解釋

謝謝~~

souda iT邦好手 1 級 ‧ 2017-01-24 15:32:23 檢舉
你問的是JavaScript嗎?
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

WilliamHuang
iT邦研究生 1 級 ‧ 2017-01-24 14:10:41
【**此則訊息已被站方移除**】
0
akari0624
iT邦新手 5 級 ‧ 2017-01-25 10:20:30

內存洩漏 是 對岸用語,台灣的用詞是 記憶體洩漏,英文是memory leak,
具體狀況就是好比說 一個變數它一直被某段程式抓住,所以它不會被排入GC的佇列裡,但是那個當下你也已經access不到那個變數了,就變成你沒辦法用那個變數裡面存的資料,但是它確實一直佔著你的記憶體空間。就像打電動遊戲,最大HP減少了那樣....javaScript裡的話 , closure有可能會造成記憶體洩漏,連addEventListener如果沒用好的話也有可能造成記憶體洩漏......不可不注意...。

這篇G.T.Wang大大的好文有講到js裡的記憶體洩漏
https://blog.gtwang.org/web-development/javascript-memory-leak-patterns/

或是您想看原文的:
http://www.ibm.com/developerworks/library/wa-memleak/index.html#resources

這一篇裡有講到addEventListener在什麼情況下會造成記憶體洩漏和如何預防(removeEventListener)
https://auth0.com/blog/four-types-of-leaks-in-your-javascript-code-and-how-to-get-rid-of-them/

感謝幫忙解答~~~

我要發表回答

立即登入回答