.NET Memory Profiler 查看内存使用情况

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是一款帮你轻松找出内存泄漏的分析工具,并且可以轻松搞定许多性能问题。

时间: 2024-08-01 18:00:52

.NET Memory Profiler 查看内存使用情况的相关文章

查看内存使用情况

NET Memory Profiler 查看内存使用情况 1 简介 .Net Memory Profiler(以下简称Profiler):专门针对于.NET程序,功能最全的内存分析工具,最大的特点是具有内存动态分析(Automatic Memory Analysis)功能. 2 安装 http://memprofiler.com/download.aspx 下载好后 直接下一步下一步 3 使用方法 支持7种类型.NET程序 启动跟踪(Profiler Application) 选定对应的调试方式

android查看内存使用情况

1. 在IDE中查看Log信息当程序运行垃圾回收的时候,会打印一条Log信息,其格式如下:D/dalvikvm: <GC_Reason> <Amount_freed>, <Heap_stats>, <External_memory_stats>, <Pause_time> GC_Reason表示导致垃圾回收的原因以及当前的回收类型,包括以下几类:    GC_CONCURRENT:当堆中对象数量达到一定是触发的垃圾收集    GC_FOR_MAL

Linux下查看内存使用情况方法总结

Linux查看CPU和内存使用情况:http://www.cnblogs.com/xd502djj/archive/2011/03/01/1968041.html 在做Linux系统优化的时候,物理内存是其中最重要的一方面.自然的,Linux也提供了非常多的方法来监控宝贵的内存资源的使用情况.下面的清单详细的列出了Linux系统下通过视图工具或命令行来查看内存使用情况的各种方法. 1. /proc/meminfo 查看RAM使用情况最简单的方法是通过/proc/meminfo.这个动态更新的虚拟

linux下查看内存使用情况

http://www.cnblogs.com/skyme/archive/2011/01/04/1925227.html linux下查看内存使用情况

linux命令:swap交换分区、free查看内存使用情况、mkswap创建交换分区

    mkswap命令简介: 用于创建格式化交换分区swap. 1.命令格式:    free  查看系统内存使用情况        -m:以M为单位显示(默认以字节显示) [[email protected] ~]# free total       used       free     shared    buffers     cached Mem:       1938628     161284    1777344          0      26632      57404

linux-10 基本命令之查看内存使用情况- free,history,who,last

free 命令 显示当前系统中内存的使用量情况  格式如下:free[-m/-g] 以m为单位显示当前内存的使用情况 [[email protected] /]# free -m 内存总量 已用量 可用量 进程共享的内存量 磁盘缓存的内存量 缓存的内存量 who  命令  查看当前登入系统的用户数 last  命令 查看所有系统的登入记录 格式为:last[参数] history  命令 查看系统中所有执行过的命令 历史记录被保存到 用户家目录的".bash_history" 文件中

centos 7.0 查看内存使用情况 和 查看硬盘使用情况

在系统平时使用中 ,最重要的三个方面  内存使用 硬盘使用  CPU负载 这些 自己觉得 比较重要 首先就是内存查看 命令free -m  -m 表示单位是M 主要看第一行Mem  总共3758M 使用了275M 剩余空闲3482M 这个shared 8M 也不知道用在哪里~.... 第二行 -/+ buffers/cache 使用中的used 151M  计算方法 (275M)used - buffers(1M) -cached(123M) = 151M free空闲的 3607M  = fr

android性能测试与调优:使用 DDMS 查看内存分配情况

1. 启用自己的APK后 2. 点击左边更新heap 3. 点击右边的heap中的垃圾回收cause GC,等待数秒出现回收内存与数据情况(由于内存回收了APK运行出现异常crash) 4. 点击一个数据类型,出现柱状图分析

linux查看内存使用情况

不要用top等着屏幕一闪一闪了 top -p 1234 只能看一个进程的内存 下面根据进程名来查看: ps -e -o 'pid,comm,rsz,vsz' | grep codis | sort -nrk3 sort -n 根据数字排序,r 反序,k3 第三列(从1开始)