記憶體洩漏和記憶體溢位有啥區別?

時間 2021-05-11 22:09:42

1樓:碼樂樂

記憶體溢位,申請不到足夠的記憶體;

記憶體洩露,無法釋放已申請的記憶體;

兩者關係:記憶體洩露 → 剩餘記憶體不足 → 後續申請不到足夠記憶體 →記憶體溢位。

2樓:5險1金3頓飯

看了通篇的回覆,大家都在用 『與水有關的場景』 打比方,

能看懂,因為大同小異(大家都理解這個意思)。

我在想,能否舉1個 『與水沒有關係的場景』,其實很容易想到,我想想看,

比如:記憶體溢位:你去買鞋,今天你趕時間,沒時間試。平時你穿42碼的,但是美女導購勸你說 『這個款式號碼偏大』,於是你買了1個41碼的。能不能穿?導購漂亮不漂亮?

記憶體洩露:你去買鞋,今天發工資了,你高興,但是昨天你踢球腳扭了還沒消腫。同1個品牌同1個款式,平時你穿42碼的,今天你試了試42碼的,但是穿不進去。你買不買?

記憶體溢位,就是講,你計畫的 『行為』 跟你實際的 『行為』 不match

記憶體洩露,而是講,你計畫的 『行為』 跟你實際的 『行為』 是match的,但是實際的 『行為』 內分泌失調了。你試試看4天不拉屎,第5天運動會跑1000公尺,你最終的實力會不會受到影響?(恩,可能會,也可能不會,但終究已經形成了 『會被受到影響』 的風險)

3樓:

洩漏就是記憶體申請後,用完沒有釋放,造成可用記憶體越來越少。

溢位指使用者實際的資料長度超過了申請的記憶體空間大小,導致覆蓋了其他正常資料,容易造成程式異常,嚴重的,攻擊者可以以此獲取程式控制權。

4樓:支浩宇

所謂記憶體洩漏,只是乙個程式設計習慣的問題。實際上很多記憶體洩漏對程式的執行不會有任何影響,有的記憶體洩漏,要連續不關機不重啟電腦長達幾十年的時間,才會被人覺察到。

比如說電腦的記憶體有32GB,你程式分配了一塊2KB的記憶體。而這塊記憶體沒有起任何作用,就一直放在那裡。這就是記憶體洩漏的一種。有什麼影響嗎? 毫無影響。

一般說記憶體洩漏是指分配了一塊記憶體,用它存了一些東西,然後不再用它了,但並沒有把這塊記憶體釋放掉。實際上只要程式退出了,不管洩漏不洩露,所有的記憶體一樣會釋放。

記憶體溢位比這嚴重多了。比如電腦有32GB的記憶體,32GB全用完了,這叫記憶體溢位。

不管記憶體洩漏與否,只要用了這麼多記憶體,都會導致記憶體溢位。

5樓:張山

簡單來說,作業系統就像資源分配人員,你要使用記憶體的時候分給你,你用完了還給它。如果你使用了沒有分配給你的記憶體就是記憶體溢位,如果你用完了沒有還就是記憶體洩漏。

會引起的問題嘛,記憶體洩漏存在的問題是你用了沒有分配給你的記憶體,系統是不知道的,他又把記憶體分配給了其他程式,結果就是別人也寫了或者讀了這個記憶體。程式可能崩潰。當然也可能沒問題,所以記憶體溢位往往不好查。

記憶體洩漏的問題就比理解,你沒有還給系統,系統的記憶體就越來越少。直到沒有可用記憶體。

6樓:

溢位:你往桶裡不停倒水,滿了以後就溢位了。

洩露:你昨晚喝醉,把鑰匙扔在角落裡了。你不知道在哪,只能搜遍全屋子才能找到。但你的屋子還是能放不少東西的。

7樓:禾寬

記憶體溢位,這個好理解,說明儲存空間不夠大。就像倒水倒多了,從杯子上面溢位了來了一樣。

記憶體洩漏,原理是,使用過的記憶體空間沒有被及時釋放,長時間占用記憶體,最終導致記憶體空間不足,而出現記憶體溢位。這個也很好理解,所謂的「洩漏」是相對釋放物件來定義的,逃脫了釋放物件的釋放,漏處理了,也就是洩漏。形象一點理解,就是乙個大的排放廢水的池子,你用水瓢(相當於釋放物件)瓢水,但是水瓢有個洞,漏了。

蘋果的記憶體和安卓的記憶體有什麼區別?

捂奈七七 你說的記憶體是ram還是ROM 如果是記憶體的話並沒有什麼區別,而且安卓的記憶體要比蘋果的普遍大,這是因為安卓的本質是在虛擬機器上執行的。因為基於Linux開發 而應用又不能直接在Linux上執行所以需要乙個虛擬機器。所以執行效率就大大的降低了。而iOS 是基於Linux核心用c c 開發...

記憶體和視訊記憶體的區別大嗎?

風雅 本質都是作為臨時儲存 用途不一樣,乙個服務於CPU,乙個服務於GPU而GPU是負責專門的影象領域 整合GPU是需要共享記憶體 沒錯,記憶體也可以作為視訊記憶體 所以,本質上區別不是很大 但引數上就不一定了,寬位 速率 顆粒等等 SilverFox 大多了啊,比如說有一堆資料,記憶體相當於你腦子...

筆記本公升級記憶體,8 24和16 16區別在哪?

太陽花資訊 貌似沒有24GB的記憶體哈,目前比較多的應該是8GB和16GB兩種用的比較多。現在筆記本基本上只有2個記憶體插槽,到目前最高搭配的就是16GB 16GB,這個就是雙通道,也就是說如果16G記憶體和8G 8G的記憶體,如果頻率是一樣的,速度上8G 8G快過單獨一條16GB的。多工執行的時候...