• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            posts - 58,  comments - 75,  trackbacks - 0
                new出來的空間如果沒有主動(dòng)銷毀,在程序退出時(shí)仍可能有內(nèi)存的泄露。
            操作系統(tǒng)描述到,在進(jìn)程退出時(shí)會(huì)銷毀它所使用的所有內(nèi)存空間,但這只是
            一個(gè)模型上的構(gòu)想和描述。在實(shí)際的操作系統(tǒng)的實(shí)現(xiàn)上并不能做到這一點(diǎn)。
            因?yàn)椋獙?shí)現(xiàn)在進(jìn)程退出時(shí)銷毀它所使用的內(nèi)存空間,就要給每個(gè)被使用的
            內(nèi)存空間打一個(gè)標(biāo),表示這段內(nèi)存空間被那個(gè)進(jìn)程使用。在這種情況下,如
            果有多個(gè)使用小內(nèi)存量的進(jìn)程,并且被頻繁的創(chuàng)建和銷毀,那么光記住那些
            進(jìn)程標(biāo)致就要占用很大的內(nèi)存空間,這是一個(gè)很不劃算的方案。所以在實(shí)際
            中,操作系統(tǒng)并沒有給每個(gè)進(jìn)程使用的內(nèi)存空間打標(biāo)。這樣,有些小內(nèi)存是
            沒有被回收的,如果多次開關(guān)這個(gè)程序就會(huì)發(fā)現(xiàn),有內(nèi)存被大量的占用,而
            不能被釋放。
                所以那些在程序中只有一個(gè)實(shí)例,并且是被new出來的對(duì)象,也應(yīng)該主動(dòng)
            的去手動(dòng)銷毀,而不能依賴程序退出時(shí)由系統(tǒng)銷毀。

                被new出來的對(duì)象其銷毀是兩個(gè)步驟。
                1 析構(gòu)對(duì)象。條用對(duì)象的析構(gòu)函數(shù),將對(duì)象占用的資源釋放掉。
                2 釋放內(nèi)存。將對(duì)象所占用的內(nèi)存釋放掉。
                
                如果new出來的對(duì)象沒有被銷毀,會(huì)造成連個(gè)層面上的泄露。
                1 對(duì)象泄露。他會(huì)造成背對(duì)象占用的資源也沒有銷毀或釋放。比如在對(duì)象
            中占有文件的句柄,在析構(gòu)時(shí)才釋放。如果對(duì)象泄露了,這個(gè)句柄是不會(huì)被釋
            放的。那個(gè)文件會(huì)一直被占用。如果文件打開時(shí)是獨(dú)占的,那么及時(shí)對(duì)象所在
            的程序退出了,別的程序也別想訪問這個(gè)文件。
                2 內(nèi)存泄露。所占用的內(nèi)存不能被釋放。

            posted on 2007-05-31 10:50 walkspeed 閱讀(2728) 評(píng)論(5)  編輯 收藏 引用 所屬分類: C++語言

            FeedBack:
            # re: 內(nèi)存泄露和對(duì)象泄露
            2007-05-31 17:58 | Steven
            內(nèi)存在進(jìn)程結(jié)束時(shí)是會(huì)被釋放的
            至少windows是這樣的。
            幾乎所有的內(nèi)存都是從heap上分配的,雖然每個(gè)進(jìn)程可以有多個(gè)heap
            但不會(huì)太多的,系統(tǒng)在進(jìn)程結(jié)束的時(shí)候釋放所有的heap,自然從heap上
            分配的內(nèi)存也被釋放掉了。
            當(dāng)然依賴進(jìn)程結(jié)束來釋放內(nèi)存依然是危險(xiǎn)的,因?yàn)橄到y(tǒng)只負(fù)責(zé)釋放內(nèi)存
            而不管調(diào)用析構(gòu)函數(shù),如果析構(gòu)函數(shù)中有什么操作的話是不會(huì)被執(zhí)行的。
            不過windows上還好了,進(jìn)程結(jié)束的時(shí)候所有進(jìn)程相關(guān)的內(nèi)核對(duì)象和GDI對(duì)象
            包括文件,mutex, dc等都會(huì)被釋放掉。

            對(duì)于某些其他操作系統(tǒng)來說,尤其是嵌入式系統(tǒng),比較麻煩些。
            比如Symbian OS,進(jìn)程結(jié)束后某些資源不會(huì)被釋放,尤其是發(fā)生異常退出的時(shí)候。  回復(fù)  更多評(píng)論
              
            # re: 內(nèi)存泄露和對(duì)象泄露
            2007-06-01 09:20 | walkspeed
            你可以做個(gè)小實(shí)驗(yàn)。
            寫一個(gè)程序,只是new個(gè)幾十K的內(nèi)存。

            將這個(gè)程序開關(guān),開關(guān)幾十次,你就會(huì)發(fā)現(xiàn)內(nèi)存的后用會(huì)增加。如果再多,windows是會(huì)掛的。  回復(fù)  更多評(píng)論
              
            # re: 內(nèi)存泄露和對(duì)象泄露
            2007-06-01 16:39 | myy
            我同意 1 樓的說法.

            樓上的小實(shí)驗(yàn)并不能說明問題,就算是正常的程序,內(nèi)存也會(huì)增加,我猜這是操作系統(tǒng)內(nèi)部的原因,比如緩存文件映像什么的。  回復(fù)  更多評(píng)論
              
            # re: 內(nèi)存泄露和對(duì)象泄露
            2007-06-01 18:07 | wqp
            #1樓說的是對(duì)的,現(xiàn)代操作系統(tǒng)都采用虛擬內(nèi)存來管理物理內(nèi)存,每個(gè)進(jìn)程擁有的只是線性地址,用來記錄線性地址到物理地址轉(zhuǎn)換的頁表為每個(gè)進(jìn)程所有,進(jìn)程退出時(shí),操作系統(tǒng)會(huì)釋放所有該頁表對(duì)應(yīng)的物理內(nèi)存頁。因此,此處不需要擔(dān)心內(nèi)存泄漏的問題。而對(duì)于服務(wù)器程序,由于長(zhǎng)時(shí)間運(yùn)行,需要特別注意內(nèi)存泄漏;還有就是嵌入式OS,通常都是在實(shí)模式運(yùn)行的,也有泄漏的風(fēng)險(xiǎn)。  回復(fù)  更多評(píng)論
              
            # re: 內(nèi)存泄露和對(duì)象泄露
            2007-06-04 14:21 | 看圖軟件
            內(nèi)存泄露。所占用的內(nèi)存不能被釋放,怎么辦  回復(fù)  更多評(píng)論
              

            <2025年8月>
            272829303112
            3456789
            10111213141516
            17181920212223
            24252627282930
            31123456

            常用鏈接

            留言簿(4)

            隨筆分類(64)

            隨筆檔案(58)

            文章分類(3)

            文章檔案(3)

            相冊(cè)

            收藏夾(9)

            C++零碎

            好友

            搜索

            •  

            積分與排名

            • 積分 - 161954
            • 排名 - 163

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            久久久久久久久久久久中文字幕| 88久久精品无码一区二区毛片| 久久精品国产色蜜蜜麻豆| 亚洲国产精品久久久天堂| 成人综合伊人五月婷久久| 日韩精品无码久久一区二区三| 99久久人妻无码精品系列| 一本色综合久久| 国产亚州精品女人久久久久久 | 久久精品18| 人妻精品久久久久中文字幕一冢本| 久久国产三级无码一区二区| 无码精品久久久久久人妻中字| 日本高清无卡码一区二区久久 | 欧美久久久久久精选9999| 久久精品国产亚洲沈樵| 久久人妻少妇嫩草AV无码专区 | 国产精品久久久久9999| 五月丁香综合激情六月久久| 欧美性大战久久久久久| 国产精品热久久毛片| 91久久成人免费| 久久精品国产91久久综合麻豆自制| 中文字幕无码免费久久| 国产精品久久久香蕉| 欧美日韩中文字幕久久久不卡 | 久久综合久久综合亚洲| 国产91色综合久久免费| 中文字幕无码久久久| 久久久WWW成人免费毛片| 91精品国产综合久久久久久| 久久精品国产亚洲AV大全| 久久久久波多野结衣高潮| 精品综合久久久久久98| 亚洲国产精品一区二区久久hs| 99精品国产免费久久久久久下载 | 国产精品久久新婚兰兰| 麻豆av久久av盛宴av| 亚洲综合日韩久久成人AV| 久久AV无码精品人妻糸列| 久久久久AV综合网成人|