.NET Memory Profiler 查看記憶體使用量情況

來源:互聯網
上載者:User

標籤:

1 簡介

.Net Memory Profiler(以下簡稱Profiler):專門針對於.NET程式,功能最全的記憶體分析工具,最大的特點是具有記憶體動態分析(Automatic Memory Analysis)功能。

2 安裝

http://memprofiler.com/download.aspx

下載好後 直接下一步下一步

3 使用方法

支援7種類型.NET程式

  • 啟動跟蹤(Profiler Application)

    選定對應的調試方式,如調試傳統型程式,選中Profiler Application,然後選擇需要啟動的執行檔案,Profiler將作為宿主程式啟動程式開始即時監控記憶體.

  • 附加進程(Attach Process)

    將Profiler附加到指定的進程上,此時不能即時監控記憶體情況,只能夠收集記憶體鏡像.

  • 匯入記憶體鏡像(Import Memory Dump)

    可以選擇dmp為尾碼的記憶體鏡像檔案,比如Windbg以及DebugDiag匯出的鏡像檔案,此時不能即時監控記憶體情況,只能夠收集記憶體鏡像且不能跟蹤非託管資源.

 

4 軟體佈建

  為了加快Profiler分析記憶體類型執行個體的速度,需要設定程式的符號路徑即(Symbol File Locations),進入菜單Tool->Options->Preferences->Symobl File Locations,得到快顯功能表如.

 

5 操作 

 

  首先,選擇需要偵錯類型,選擇 Profiler Application,選擇好需要啟動的程式exe檔案. 

 

選擇層級

 程式碼

using System;using System.Collections.Generic;using System.Linq;using System.Text;using Couchbase;using Couchbase.Configuration;using Enyim.Caching.Memcached;namespace CentaNet.CouchbaseTest{    class Program    {        static void Main(string[] args)        {            int n = 0;            while (true)            {                Console.WriteLine("=============第{0}次================", ++n);                string Bucket = System.Configuration.ConfigurationManager.AppSettings["bucket"];                string BucketPassword = Bucket;                var key = "cottrell_brewing-old_yankee_ale" + DateTime.Now.ToString();                Test(Bucket, BucketPassword, "http://10.4.18.13:8091/pools/default", key);                 Console.Write("\n");             }        }        static void Test(string Bucket, string BucketPassword, string url, string key)        {            var clientConfiguration = new CouchbaseClientConfiguration();            clientConfiguration.Bucket = Bucket;            clientConfiguration.BucketPassword = BucketPassword;            clientConfiguration.Urls.Add(new Uri(url));            clientConfiguration.SocketPool.ReceiveTimeout = new TimeSpan(0, 0, 111);            clientConfiguration.SocketPool.ConnectionTimeout = new TimeSpan(0, 0, 111);            clientConfiguration.SocketPool.DeadTimeout = new TimeSpan(0, 0, 111);            var client = new CouchbaseClient(clientConfiguration);            var result = client.Store(StoreMode.Set, key, "test");            if (result)            {                var savedBeer = client.Get(key);                Console.WriteLine(clientConfiguration.Urls[0].AbsoluteUri + "   " + savedBeer.ToString());            }            else            {                Console.WriteLine(clientConfiguration.Urls[0].AbsoluteUri + "   失敗" );            }        }    }}

執行效果如下

可以看到佔用Uri資源執行個體是最多的

儲存快照 分析原因

 

雙擊

可以看出造成URI執行個體原因是 couchbasepool 造成的,可以跟蹤程式碼

 

Import Memory Dump

轉存需要分析的dmp檔案

 

 

需要下載SDK支援

https://developer.microsoft.com/en-us/windows/hardware/windows-driver-kit

 

可以看到記憶體的使用方式 分析溢出

推薦其他4款超實用的.NET效能分析工具

1.JetBrains dotTrace

  JetBrains dotTrace是一款效能和記憶體分析工具,它可以協助你最佳化應用程式效能指標,支援.NET 1.0版本到4.5,快速剖析器瓶頸,找出影響效率的代碼。官方網站上面有10天試用版,大家可以點擊下載使用。

2.ANTS Performance Profiler

  ANTS效能分析器是一種用於分析.NET架構支援的用任何語言編寫的應用程式的工具。ANTS效能分析器能分析所有.NET應用程式,包括ASP.NET網路應用程式、Windows服務和COM+應用程式。ANTS效能分析器能在幾分鐘內識別效能瓶頸,運行非常快速,且響應時,對程式的執行具有最低影響。ANTS效能分析器可用作一種獨立工具,也可用作Red Gate .NET Developer Bundle的一部分。目前支援14天免費試用,大家可以去體驗體驗。

3.EQATEC Profiler

  另一個非常好的.NET分析器,它擁有多個版本,有免費版,標準版、專業版等。不僅使用方便,而且最佳化速度也相當快。

4.Telerik Just Trace

  Telerik Just Trace是一款幫你輕鬆找出記憶體流失的分析工具,並且可以輕鬆搞定許多效能問題。

 

.NET Memory Profiler 查看記憶體使用量情況

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.