內(nèi)存泄露怎么定位?
1.
定位占用CPU最高的服務(wù)
先找到cpu占用比較高的進(jìn)程:top -c 進(jìn)去后按Shift+P鍵 一般異常的進(jìn)程cpu的占用會(huì)很高,記錄下這進(jìn)程的PID
查看指定進(jìn)程cpu情況:top -cp 查看此進(jìn)程占用cpu最高的線程,記錄下線程的ppid 也可以將相關(guān)信息保存下來(lái)
什么是內(nèi)存泄漏
在計(jì)算機(jī)科學(xué)中,內(nèi)存泄漏指由于疏忽或錯(cuò)誤造成程序未能釋放已經(jīng)不再使用的內(nèi)存。
內(nèi)存泄漏并非指內(nèi)存在物理上的消失,而指程序中已動(dòng)態(tài)分配的堆內(nèi)存由于某種原因程序未釋放或無(wú)法釋放,造成系統(tǒng)內(nèi)存的浪費(fèi),導(dǎo)致程序運(yùn)行速度減慢甚至系統(tǒng)崩潰等嚴(yán)重后果。
在C中出現(xiàn)內(nèi)存泄漏的主要原因就是程序猿在申請(qǐng)了內(nèi)存后,沒(méi)有及時(shí)釋放沒(méi)用的內(nèi)存空間,甚至消滅了指針導(dǎo)致該區(qū)域內(nèi)存空間根本無(wú)法釋放。
知道了出現(xiàn)內(nèi)存泄漏的原因就能知道如何應(yīng)對(duì)內(nèi)存泄漏,即:不用了的內(nèi)存空間記得釋放,不釋放留著過(guò)年哇!