雖然看了一些書(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ǔ)(主要是大小端)
延伸閱讀
- ssh框架 2016-09-30
- 阿里移動(dòng)安全 [無(wú)線(xiàn)安全]玩轉(zhuǎn)無(wú)線(xiàn)電——不安全的藍(lán)牙鎖 2017-07-26
- 消息隊(duì)列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標(biāo)分割】 2017-07-26
- 詞向量-LRWE模型-更好地識(shí)別反義詞同義詞 2017-07-26
- 從棧不平衡問(wèn)題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實(shí)現(xiàn)JSON轉(zhuǎn)Model - HandyJSON使用講解 2017-07-26
- 阿里移動(dòng)安全 Android端惡意鎖屏勒索應(yīng)用分析 2017-07-26
- 集合結(jié)合數(shù)據(jù)結(jié)構(gòu)來(lái)看看(二) 2017-07-26