簡體   English   中英

Visual Studio Xamarin Forms 診斷工具

[英]Visual Studio Xamarin Forms Diagnostic Tools

如果 Memory Usage 中的對象 (diff) 減少了,是否意味着垃圾收集已經運行?

Xamarin 表單診斷工具

從文檔Analyze memory usage data我們可以知道:

列的名稱取決於您在項目屬性中選擇的調試模式:.NET、本機或混合(.NET 和本機)。

  • Objects (Diff)Allocations (Diff)列顯示快照時 .NET 和本機 memory 中的對象數量
    采取。
  • Heap Size (Diff)列顯示 .NET 和本機堆中的字節數

當您拍攝了多個快照時,匯總表的單元格包括行快照和前一個快照之間的值變化。

要分析 memory 使用情況,請單擊打開 memory 使用情況詳細報告的鏈接之一:

要查看當前快照與先前快照之間差異的詳細信息,請選擇箭頭左側的更改鏈接(內存使用增加)。 red arrow表示 memory 使用量increasegreen arrow表示decrease

因此,綠色箭頭表示 memory 使用量減少。

通常,對於您的應用程序創建的大多數對象,您可以依靠the garbage collector automatically執行必要的 memory 管理任務。 但是,非托管資源需要顯式清理。 最常見的非托管資源類型是 object,它包裝了操作系統資源,例如文件句柄、window 句柄或.network 連接。 盡管垃圾收集器能夠跟蹤封裝了非托管資源的托管 object 的生命周期,但它並沒有關於如何清理資源的具體知識。 當您創建封裝非托管資源的 object 時,建議您提供必要的代碼以在公共Dispose方法中清理非托管資源。 通過提供Dispose方法,您可以讓 object 的用戶在使用完 object 后明確釋放其 memory。

綜上所述,我們不能武斷地說,只要memory的使用率有所下降,就一定代表Garbage Collection在運行。 可能這個時候用Dispose這個方法釋放了memory。

更多信息可以查看:非托管資源自動Memory管理釋放Memory

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM