內存泄露

         一般我們常說的內存泄漏是指堆內存的泄漏。堆內存是指程序從堆中分配的,大小任意的(內存塊的大小可以在程序運行期決定),使用完後必須顯式釋放的內存。應用程序一般使用malloc,calloc,realloc,new等函數從堆中分配到一塊內存,使用完後,程序必須負責相應的調用free或delete釋放該內存塊,否則,這塊內存就不能被再次使用,我們就說這塊內存泄漏了。

       當以前分配的一片內存不再需要使用或無法訪問時,但是卻並沒有釋放它,那麼對於該進程來說,會因此導致總可用內存的減少,這時就出現了內存泄漏。儘管優秀的編程實踐可以確保最少的泄漏,但是根據經驗,當使用大量的函數對相同的內存塊進行處理時,很可能會出現內存泄漏。尤其是在碰到錯誤路徑的情況下更是如此。

      檢測是否有內存泄露的一個小技巧:就是打開windows任務管理器選到性能的菜單項,,然後運行你的程序,看windows任務管理器選到性能的菜單項中的cpu的使用是否一直在上升,如一直上升就說明有內存泄露,如上升到某個值左右上下浮動,說明沒有內存泄露。

     嚴重的內存泄露常常表現爲:程序運行時間的越長,佔用的內存越多,最終導致系統內存枯竭。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章