大家都知道.net有一套自己的内存(垃圾)回收机制,除非有一些数据(方法)长期占有内存不随着垃圾回收功能而释放内存,这样就造成了我们经常说的内存泄露、内存持续增长得不到释放等问题导致APS.net网站或者C/S应用程序的用户无法正常使用。最终会导致用户通过客服人员或者技术支持人员投诉公司的技术部门,形成一连串的未知的不良反映。

不管哪位性能测试人员,遇到这样的问题都是摸不着头脑,不知从何处下手。.net环境中不像JAVA有那么多的工具可以支撑,比如性能测试经常用到的Jconsole、Jprofiler等工具,并且基于JAVA运行环境的在打印GC日志方面也很强大。对于.net平台,微软也提供的.net辅助工具CLR Profiler可以很好的帮助我们的性能测试人员以及研发人员,找到内存没有及时回收,占着内存不释放的方法(详细到这个方法下面定义的数组或者其他变量)。

下载地址:http://search.microsoft.com/en-us/DownloadResults.aspx?q=clr%20profiler

可根据自己电脑.NET的版本下载相应的CLR Profiler,我下载的是CLR Profiler for .NET Framework 4版本的。

下载后提示解压缩,选择要加压到的目录;然后进入D:\SoftWare\CLRProfiler4\CLRProfiler\Binaries目录下选择对应操作系统64位或者32位的CLRProfiler.exe。
在说一下,CLRProfiler可以分析.net平台开发的几乎所有的产品,包括C/S应用程序、服务和asp.net编写的网站等。

我的环境是:IIS服务器(asp.net开发的站点)+MS sql

打开CLRProfiler界面,选中Profiling active、Allocation和Calls,【Start Application】是加载.net开发的exe程序的;【Start URL】是输入被测页面URL的;

我要在IE中测试asp.net开发的页面,CLR Profiler首先要加载IIS所需要的环境变量,CLR Profiler然后提示你加载ASP.NET应用程序和等待ASP.NET工作进程启动。

在File菜单中点击Profile ASP.NET

停止IIS服务可能要很长时间,需要耐心等待。最后提示可以测试页面啦

“Waiting for ASP.NET to start common language runtime - this is thetime to load your test page”

点击【Start URL】按钮,输入我们要测试的页面URL,点击OK,就会自动打开我们要检查内存有不释放内存的页面,多在页面中使用一会,以便CLR Profiler收集更多的数据。

当已完成页面的运行,请点击CLR Profiler窗口中的 【Kill ASP.NET】。然后CLR Profiler自动关闭IIS,移除环境变量,重启IIS。

点击【Allocation Graph】打开内存分配视图,在这个视图当中我们可以看出堆栈是如何分别对象的

点击【Objects by Address】按钮将会显示各种方法在内存中占用的直方图界面

可以通过选中那个视图中的某一个柱形条,右击show who allocated。点击这个菜单项显示关于所选分配的特定详细内容,而不是所有分配的

点击[TimeLine]按钮,在打开的图片中可以清晰的看出各次回收时间和前后内存占用量情况

在view菜单中,有很多没有显示的菜单。

点击call tree 菜单,可以看到在不同线程下,所有方法占用内存大小,被调用次数等信息

如果看不到图片请查看我的另一篇文章:http://blog.csdn.net/wy3552128/article/details/8158938

【转】.NET程序内存分析工具CLRProfiler的使用相关推荐

  1. Windows系统内存分析工具的介绍

    Windows系统内存分析工具的介绍(进程管理器,资源管理器,性能监视器, VMMap, RamMap,PoolMon) 微软官方提供多种工具来分析Windows 的内存使用情况,除了系统自带的任务管 ...

  2. [转] python运行时内存分析工具meliae

    转自:https://my.oschina.net/markco/blog/601773 利用meliae来监控python进程的内存占用情况 meliae是一个python进程内存占用监控.分析工具 ...

  3. Java程序内存分析

    2019独角兽企业重金招聘Python工程师标准>>> Java程序内存分析:使用mat工具分析内存占用 http://my.oschina.net/biezhi/blog/2862 ...

  4. android应用内存分析,Android应用程序内存分析-Memory Analysis for Android Applications

    Android应用程序内存分析 原文链接:http://android-developers.blogspot.com/2011/03/memory-analysis-for-android.html ...

  5. 内存分析工具MAT的使用

    原文链接:http://www.jianshu.com/p/d8e247b1e7b2 MAT简介 MAT(Memory Analyzer Tool),一个基于Eclipse的内存分析工具,是一个快速. ...

  6. envi 文件 生成mat_JVM 内存分析工具 MAT 的深度讲解与实践——入门篇

    1. MAT 工具简介 MAT(全名:Memory Analyzer Tool),是一款快速便捷且功能强大丰富的 JVM 堆内存离线分析工具.其通过展现 JVM 异常时所记录的运行时堆转储快照(Hea ...

  7. 内存分析工具MAT介绍

    MAT(Memory Analyzer Tool)是一个基于Eclipse的内存分析工具,是一个快速.功能丰富的java heap分析工具,它可以帮助我们查找内存泄漏和减少内存消耗. 官网地址:htt ...

  8. oracle 内存分析工具,IDE 中的分析工具

    IDE 中的分析工具 Oracle Solaris Studio IDE 提供的交互式图形分析工具可用于检查在 IDE 内部运行的项目的性能.分析工具使用 Oracle Solaris Studio ...

  9. python 内存分析工具_[转] python运行时内存分析工具meliae

    meliae是一个python进程内存占用监控.分析工具,它的安装需要依赖pyrex包. 一.安装: 安装python内存分析工具 sudo pip install cython sudo pip i ...

最新文章

  1. 《自然》杂志:关于人类未来的工作,有三个最紧迫的问题
  2. Git环境搭建与基本使用方法
  3. Keystone v3 domains 应用场景
  4. 建立广域网时使用的拓扑结构是什么?
  5. OnClientClick和OnClick同时使用!
  6. 记录我对Padding Oracle攻击的分析和思考之抄写
  7. 五种I/O 模式——阻塞(默认IO模式),非阻塞(常用语管道),I/O多路复用(IO多路复用的应用场景),信号I/O,异步I/O
  8. 我的BERT!改改字典,让BERT安全提速不掉分(已开源)
  9. MFC中的几种播放声音的方法
  10. iOS (封装)一句话调用系统的alertView和alertController
  11. 基于python的图像变换(翻转、平移、缩放、旋转、仿射和透视变换)
  12. SAP License:玩转SAP中的凭证冲销
  13. mysql5.7 备份恢复_RDS for MySQL 5.7 备份恢复为本地实例-阿里云开发者社区
  14. LeetCode-C#实现-链表(#19/21/141/206/707/876)
  15. Some Sites About .Net
  16. Kroll任命Richard Davies担任网络风险业务副董事总经理,常驻香港
  17. Windows11常用快捷键总结(包含触控板使用技巧)
  18. 移动端300ms延迟_移动端300ms延迟原因及解决方案
  19. mysql 测试数据库employees导入
  20. SAMSUNG S3C2440的简易BootLoader ㈢

热门文章

  1. 【OS学习笔记】二十九 保护模式八:任务切换对应的汇编代码之用户程序代码
  2. maven 解决冲突
  3. JavaScript学习系列3 -- JavaScript arguments对象学习
  4. BZOJ2302 [HAOI2011]Problem c 【dp】
  5. Django之ORM
  6. 变量的比较之equals 与 == 的区别
  7. Python模块及其导入
  8. Python之编写登陆接口
  9. Node.js server使用
  10. c# 路径空格---ProcessStartInfo参数问题