内存泄露 内存溢出 内存碎片
生活随笔
收集整理的這篇文章主要介紹了
内存泄露 内存溢出 内存碎片
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
********************************************************************************
內存泄漏也稱作“存儲滲漏”,用動態存儲分配函數動態開辟的空間,在使用完畢后未釋放,結果導致一直占據該內存單元。直到程序結束。(其實說白了就是該內存空間使用完畢之后未回收)即所謂內存泄漏。 內存泄漏形象的比喻是“操作系統可提供給所有進程的存儲空間正在被某個進程榨干”,最終結果是程序運行時間越長,占用存儲空間越來越多,最終用盡全部存儲空間,整個系統崩潰。所以“內存泄漏”是從操作系統的角度來看的。這里的存儲空間并不是指物理內存,而是指虛擬內存大小,這個虛擬內存大小取決于磁盤交換區設定的大小。由程序申請的一塊內存,如果沒有任何一個指針指向它,那么這塊內存就泄漏了。********************************************************************************
內存溢出(out of memory)通俗理解就是內存不夠,通常在運行大型軟件或游戲時,軟件或游戲所需要的內存遠遠超出了你主機內安裝的內存所承受大小,就叫內存溢出。此時軟件或游戲就運行不了,系統會提示內存溢出,有時候會自動關閉軟件,重啟電腦或者軟件后釋放掉一部分內存又可以正常運行該軟件或游戲一段時間。
********************************************************************************
內部碎片
內部碎片就是已經被分配出去(能明確指出屬于哪個進程)卻不能被利用的內存空間; 內部碎片是處于區域內部或頁面內部的存儲塊。占有這些區域或頁面的進程并不使用這個存儲塊。而在進程占有這塊存儲塊時,系統無法利用它。直到進程釋放它,或進程結束時,系統才有可能利用這個存儲塊。 單道連續分配只有內部碎片。多道固定連續分配既有內部碎片,又有外部碎片。外部碎片
外部碎片指的是還沒有被分配出去(不屬于任何進程),但由于太小了無法分配給申請內存空間的新進程的內存空閑區域。 外部碎片是出于任何已分配區域或頁面外部的空閑存儲塊。這些存儲塊的總和可以滿足當前申請的長度要求,但是由于它們的地址不連續或其他原因,使得系統無法滿足當前申請。********************************************************************************
總結
以上是生活随笔為你收集整理的内存泄露 内存溢出 内存碎片的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: DRAM,SRAM,SDRAM的关系与区
- 下一篇: 13个代码注释的小贴士