.NET內存分析工具-dotMemory
1、介紹
引言
程序內存占用較大?內存溢出?需要分析生產環境程序怎么辦?
dotMemory 使您可以分析各種 .NET 和 .NET Core應用程序的內存使用情況:桌面應用程序、Windows 服務、ASP .NET Web 應用程序、IIS、IIS Express、任意 .NET 進程等。
效果
2、安裝
3、使用
安裝完成后運行本次的主角:dotMemory
第一次運行會出現相應條款和賬戶登錄,先不管它(有5天試用),直接點擊Resume evaluation
同意,下一步點擊OK
。
然后就進入dotMemory工具
這邊重點介紹“Local”和“Import Dump”兩種方式。“Local”:適合邊運行邊分析,我理解為在線分析;“Import Dump”適合於服務器不適合裝軟件(例如Linux環境),或者在生產環境上不適合安裝軟件,當您需要分析極大內存的時候,服務器內存不夠時,我也建議您使用此方式,因為分析軟件也需要占用系統資源,我理解為離線分析。
3.1、Local 使用示例
第一步:啟動程序
第二步:看到內存比較高了,就點擊‘Get Snapshot’獲取快照(可多次點擊獲取),點擊后頁面下方會出現每次點擊的快照
第三步:進入分析界面
上圖就是具體的分析界面了,大家自己多點點就明白了,其中“Gall Tree”就是要在啟動的時候把‘Collect memory allocation and traffic data from start ’勾選上才可以查看的,這個功能建議開啟,可以很方便的查看是哪行代碼占用內存。
3.2、Import 使用示例
“Import”方式主要是要生成轉儲文件Dump(理解為把內存里面存的東西放到一個文件里),然后分析工具讀取這個文件進行分析
3.2.1 Windows創建內存轉儲
第一步
打開‘任務管理器’,右擊所要分析的程序,點擊'創建轉儲文件',復制文件路徑。
另外通過命令行也可以方便的生成快照文件,Linux系統也是這樣,微軟官方鏈接。
第二步
然后就進入分析界面了,跟‘Local’方式進入的分析界面一樣。
3.2.2 Linux創建內存轉儲
懶得寫了,大佬請看官方文檔 微軟官方鏈接。