亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

循環引用導致內存泄漏?

循環引用導致內存泄漏?

慕桂英546537 2019-10-21 15:28:13
我試圖減少Windows窗體應用程序中的內存泄漏。我現在正在查看包含幾個嵌入式表單的表單。我擔心的是,孩子的形式,在其構造,采取父窗體參考,并保持在一個私有成員字段。所以,在我看來,來的垃圾收集時間:父具有對兒童形式的引用,通過控制集合(子形式被嵌入在那里)。子窗體未GC'd。子形式具有與母體形式的引用,經由專用成員字段。父窗體不GC'd。這是對垃圾收集器如何評估情況的準確理解嗎?任何方式“證明”它用于測試目的?
查看完整描述

3 回答

?
撒科打諢

TA貢獻1934條經驗 獲得超2個贊

好問題!

不會,這兩種形式都是(可以)GC的,因為GC不會直接在其他參考文獻中查找參考文獻。它僅查找所謂的“ Root”引用...包括堆棧上的引用變量(變量在堆棧上,實際對象當然在堆上),CPU寄存器中的引用變量以及類中的靜態字段...

如果所有其他參考變量在通過上述過程找到的“根”參考對象之一的屬性中被引用(或在由根對象中的參考引用的對象中被引用),則僅對其進行訪問(和GC處理)等)。

因此,只有在“根”引用中其他位置引用了其中一種形式時,這兩種形式才能從GC中安全使用。

只有我能想到的方法來“證明”的,(不使用記憶痕跡的實用程序)將創建這些形式對夫婦十萬,在一個循環的方法中,然后,而在方法,看一下應用程序的內存占用,然后從方法退出,調用GC,并在接地再看看。


查看完整回答
反對 回復 2019-10-21
  • 3 回答
  • 0 關注
  • 488 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號