我正在調(diào)查生產(chǎn)中的內(nèi)存轉(zhuǎn)儲(chǔ),我看到很多關(guān)于“固定句柄”的引用,如下面的屏幕截圖所示(來(lái)自 Jetbrains dotMemory)。我們沒(méi)有使用固定的,我們沒(méi)有對(duì)這段代碼的非托管資源做任何事情,所以我想問(wèn)這怎么可能?SiteManager 類是單例的,所以有private static SiteManager _instance;代碼中的字段永遠(yuǎn)保持對(duì)該對(duì)象的引用。但我看不出這會(huì)導(dǎo)致固定的任何原因。
1 回答

ABOUTYOU
TA貢獻(xiàn)1812條經(jīng)驗(yàn) 獲得超5個(gè)贊
最有可能的是,對(duì)象數(shù)組是用于存儲(chǔ)靜態(tài)引用的內(nèi)部 CLR 對(duì)象之一。所以它不是你的對(duì)象固定,它是保持靜態(tài)引用固定的數(shù)組。
[編輯] 我說(shuō)“最有可能”是因?yàn)槲也恢滥愕某绦?。如果你作為這個(gè)程序的作者,確定它不是“你的” object[]
,那肯定它是一個(gè)保持“靜態(tài)引用 GC 根”的數(shù)組。
但是由于內(nèi)部.NET 實(shí)現(xiàn)細(xì)節(jié)似乎沒(méi)有關(guān)于對(duì)象數(shù)組的內(nèi)容。我從我作為 dotMemory 開(kāi)發(fā)人員的經(jīng)驗(yàn)中了解到這一點(diǎn)。
- 1 回答
- 0 關(guān)注
- 113 瀏覽
添加回答
舉報(bào)
0/150
提交
取消