dotnet-dump analyze 內存泄漏分析


命令:

1.dotnet-dump analyze  mydumpfile.dmp

2.dumpheap -stat  找到堆上的對象信息

3.dumpheap -mt  <mt> 列出所有與<mt>結構對應的對象,一般我都會找string對象的mt,看看里面大size的string對象是有哪些

4.do  <address> 查看對象詳細信息

5.gcroot -all <address> 一般我也是找string地址,看看對象引用

舉個例子:下面幾張圖按照順序來看

 

 

 

 

 

 

復制出上圖所有的string的address,mt 和size到表格,根據size排序 (補充:圖中紅色箭頭沒有含義只是隨便標注幾個string對象的address)

 

 

 拿到排序第一位的address,看看里面是什么

 

 

 

 其實還有更簡單的方法。就是Visual Studio 直接打開dmp文件,然后調試托管內存,然后排序查看實例(鼠標移動上去會出現這個按鈕)

 

 

 

 

 

 

引用:

https://docs.microsoft.com/en-us/dotnet/framework/tools/sos-dll-sos-debugging-extension

https://docs.microsoft.com/en-us/dotnet/core/diagnostics/debug-memory-leak


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM