雖然看了一些書(shū),還網(wǎng)絡(luò)上的一些博文,不過(guò)對(duì)CLR托管內(nèi)存細(xì)節(jié)一直比較模糊。而且因?yàn)楣ぷ髟蚩倳?huì)有很多質(zhì)疑,想要親眼看到內(nèi)存里二進(jìn)制數(shù)據(jù)的變化。

所以借助winhex直接查看內(nèi)存以證實(shí)書(shū)上的描述或更進(jìn)一步揣摩CLR托管內(nèi)存的運(yùn)作方式,這里寫(xiě)下來(lái)跟大家一起分享(由于自己這方面知識(shí)儲(chǔ)備不太充足,下面的好多內(nèi)容也是猜測(cè),肯定有很對(duì)錯(cuò)誤,希望了解的網(wǎng)友可以幫忙指正)

 

測(cè)試環(huán)境: windowsXP win10 win7 (dotnet4.0 Releases編譯 ,下文截圖為win7上的運(yùn)行結(jié)果)

內(nèi)存查看工具: winhex 7.5

 

雖然重點(diǎn)是監(jiān)測(cè)二進(jìn)制的內(nèi)存,不過(guò)基本的測(cè)試代碼還是要有的(測(cè)試是直接運(yùn)行編譯好的exe,沒(méi)有使用調(diào)試模式,編譯時(shí)要使用Releases,因?yàn)閐ebug跟Releases在GC回收時(shí)對(duì)象是否可達(dá)的判斷是不一樣的)

下面對(duì)內(nèi)存的查找部分看起來(lái)可能有點(diǎn)跳躍,因?yàn)槭墙柚朔磸?fù)測(cè)試得到的規(guī)律,很多過(guò)程沒(méi)有贅述

 

進(jìn)行之前需要先簡(jiǎn)單了解CLR對(duì)象分配(類(lèi)型對(duì)象指針要知道),GC的基本過(guò)程(G0,G1,G2需要簡(jiǎn)單了解),二進(jìn)制數(shù)據(jù)的存儲(chǔ)(主要是大小端)

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負(fù)責(zé)任的教育,學(xué)習(xí)改變命運(yùn),軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開(kāi)發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式