久久婷婷香蕉热狠狠综合,精品无码国产自产拍在线观看蜜,寡妇房东在做爰3,中文字幕日本人妻久久久免费,国产成人精品三上悠亚久久

當前位置:首頁 > 嵌入式培訓 > 嵌入式學習 > 講師博文 > 內存溢出與內存泄(xie)漏

內(nei)存溢出與(yu)內(nei)存泄漏 時(shi)間:2018-09-27      來源:未知

內(nei)(nei)存(cun)溢(yi)出(chu)(out of memory):當內(nei)(nei)存(cun)空間不足,而又(you)需要更多的(de)內(nei)(nei)存(cun)空間時,會造(zao)成內(nei)(nei)存(cun)的(de)溢(yi)出(chu),比方說(shuo)加載大圖片到內(nei)(nei)存(cun),通常會導(dao)致內(nei)(nei)存(cun)溢(yi)出(chu)。棧滿時再做進棧必(bi)定產生空間溢(yi)出(chu),叫上溢(yi),棧空時再做退棧也產生空間溢(yi)出(chu),稱(cheng)為下溢(yi)。就是分配的(de)內(nei)(nei)存(cun)不足以放下數據項(xiang)序列,稱(cheng)為內(nei)(nei)存(cun)溢(yi)出(chu)。

本文引用地址://fsbing.cn/emb/Column/7238.html

內(nei)(nei)(nei)(nei)存(cun)(cun)(cun)(cun)泄漏(memory leak):已(yi)經存(cun)(cun)(cun)(cun)在的(de)(de)對象,當(dang)不再使用時,無法釋(shi)放(fang)掉已(yi)經申請的(de)(de)空(kong)間,一(yi)次(ci)或幾次(ci)的(de)(de)內(nei)(nei)(nei)(nei)存(cun)(cun)(cun)(cun)泄漏是(shi)可(ke)以忽略的(de)(de),但是(shi)多次(ci)的(de)(de)內(nei)(nei)(nei)(nei)存(cun)(cun)(cun)(cun)泄漏堆積(ji)會造成內(nei)(nei)(nei)(nei)存(cun)(cun)(cun)(cun)空(kong)間的(de)(de)消(xiao)耗,導致內(nei)(nei)(nei)(nei)存(cun)(cun)(cun)(cun)溢出,你(ni)(ni)向系(xi)統申請分配(pei)內(nei)(nei)(nei)(nei)存(cun)(cun)(cun)(cun)進行使用(new),可(ke)是(shi)使用完了以后卻不歸還(huan)(delete),結果你(ni)(ni)申請到的(de)(de)那塊內(nei)(nei)(nei)(nei)存(cun)(cun)(cun)(cun)你(ni)(ni)自己也(ye)不能再訪問(wen)(也(ye)許你(ni)(ni)把它(ta)的(de)(de)地址給(gei)弄(nong)丟了),而系(xi)統也(ye)不能再次(ci)將它(ta)分配(pei)給(gei)需要(yao)的(de)(de)程序。這(zhe)就是(shi)溢出!

以發生的方式來分類,內存泄漏可以分為4類:

1. 常發性內存泄漏。發生內(nei)存(cun)泄(xie)漏的(de)代碼會被(bei)(bei)多次執行(xing)到(dao),每次被(bei)(bei)執行(xing)的(de)時候都會導致(zhi)一塊內(nei)存(cun)泄(xie)漏。

2. 偶發性內存泄漏。發(fa)生內存泄(xie)漏的代碼只有在某(mou)些特定環(huan)(huan)境(jing)或操(cao)作過程下才會(hui)發(fa)生。常(chang)發(fa)性和(he)偶發(fa)性是相對的。對于特定的環(huan)(huan)境(jing),偶發(fa)性的也許(xu)就變(bian)成了常(chang)發(fa)性的。所以測試環(huan)(huan)境(jing)和(he)測試方法對檢(jian)測內存泄(xie)漏至關(guan)重要。

3. 一次性內存泄漏。發生(sheng)內(nei)存(cun)泄(xie)漏(lou)的代碼(ma)只會被執行一(yi)(yi)次,或者由于算(suan)法上的缺(que)陷,導致總會有(you)一(yi)(yi)塊僅且(qie)一(yi)(yi)塊內(nei)存(cun)發生(sheng)泄(xie)漏(lou)。比如,在(zai)類的構(gou)造函數中分配內(nei)存(cun),在(zai)析構(gou)函數中卻沒有(you)釋(shi)放(fang)該內(nei)存(cun),所(suo)以內(nei)存(cun)泄(xie)漏(lou)只會發生(sheng)一(yi)(yi)次。

4. 隱式內存泄漏。程序在運行(xing)過程中不(bu)停的(de)分配內存,但是(shi)直到結束的(de)時候才釋放內存。嚴格的(de)說這里并沒(mei)有發生內存泄(xie)漏(lou),因為終(zhong)程序釋放了所(suo)有申(shen)請的(de)內存。但是(shi)對(dui)于(yu)一個服務器程序,需要(yao)運行(xing)幾天,幾周甚至幾個月,不(bu)及時釋放內存也可能導致終(zhong)耗盡系(xi)統的(de)所(suo)有內存。所(suo)以,我(wo)們稱這類內存泄(xie)漏(lou)為隱式內存泄(xie)漏(lou)。

一(yi)般隱式(shi)內(nei)存(cun)泄漏(lou)是不(bu)容易被檢測(ce)到的,因(yin)為(wei)從創建(jian)到釋(shi)放,看(kan)(kan)似并沒(mei)沒(mei)什么紕漏(lou),但(dan)是長時(shi)間的運行也會導(dao)致泄漏(lou),我們(men)可以通過DDMS中的兩項功能來檢查(cha)內(nei)存(cun):heap 查(cha)看(kan)(kan)堆的分配情況;allocation tracker跟蹤內(nei)存(cun)分配情況 。

上一篇:C++中的深拷貝與淺拷貝

下一篇:Meteor開發環境的搭建及簡單實用

熱點文章推薦
華清學員(yuan)就業榜單
高(gao)薪學員經驗分享
熱(re)點新聞推(tui)薦
前(qian)臺專線:010-82525158 企業(ye)培訓(xun)洽談專線:010-82525379 院校合作洽談專(zhuan)線:010-82525379 Copyright © 2004-2022 北京華清遠見科技集團有限公司 版權所有 ,,京公海網安備11010802025203號

回到頂部