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

大家都知道.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

  •  

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/437052.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【数据库】关系数据库理论学习

学习资源 关系型数据库的基本理论 关系数据库规范化理论PPT 笔记 三个范式总结: 第一范式:保持列最简,也就是分解列。第二范式:消除非主属性对候选码的部分函数依赖。也就是n:1,有冗余,必须分解成多个表…

sql over函数_SQL 高级函数

今天是高端局,都是超级高大上的内容,惯例上目录今天觉得红黑配色好好看呀今天没有什么具体的栗子合集,大家的应用场景都很不一样,so,到具体知识点,我们再具体举栗子。窗口函数概念: 窗口函数&am…

【转】SVN各种颜色状态

黄色感叹号(有冲突): 这是有冲突了,冲突就是说你对某个文件进行了修改,别人也对这个文件进行了修改,别人抢在你提交之前先提交了,这时你再提交就会被提示发生冲突,而不允许你提交,防止你的提交覆盖了别人的…

实现二分归并排序算法_如何实现归并排序?

归并排序归并排序是分而治之的排序算法。划分步骤很简单:将当前数组分成两半(如果N是偶数,则将其完全平等,或者如果N是奇数,则一边稍大于一个元素),然后递归地对这两半进行排序。递归写法归并排序递归写法的思想是&…

通俗解释非对称加密

通俗解释 对称加密 对于不了解非对称加密的同学,应该只知道“对称加密”。这个对称是指什么呢? 加密必然要解密。如果加密和解密用的是同一串字符串,也就是密码,那么这就称为对称的。新词汇而已,为了和非对称加密相区…

【转】解决WCF大数据量传输 ,System.Net.Sockets.SocketException: 远程主机强迫关闭了一个现有的连接...

开发中所用的数据需要通过WCF进行数据传输,结果就遇到了WCF大量传输问题 也就是提示System.Net.Sockets.SocketException: 远程主机强迫关闭了一个现有的连接 网上解决方案都是千篇一律互相转发的,并且没有明确的解决方案或者按照,各个博客中…

【手算】逆序数树形计算方法

计算过程: 给定一列数,从左向右,依次将每个数拿出来,作为一棵树的树根。从剩下的数中,找比此数小的数,作为子节点加入到树中。重复1、2,直到到达最后一个数停止。 数出二级节点,即…

python 惰性_Django中的“惰性翻译”方法的相关使用

使用 django.utils.translation.gettext_lazy() 函数,使得其中的值只有在访问时才会被翻译,而不是在 gettext_lazy() 被调用时翻译。例如:要翻译一个模型的 help_text,按以下进行:from django.utils.translation impor…

【转】SVN冲突出现场景

如今是一个团结协作的时代,开发一个系统,往往会多人协作共同完成。版本管理是必不可少的,常用的软件有Git,SVN等。今天说一下,SVN管理版本时,如果出现冲突后,如何快速解决冲突。 首先说明一个问…

Qt Creator和Visual Studio双环境开发技能攻略

前言 刚接触Qt开发时,大多数同学的第一行Qt代码是在Qt Creator中写下的。 众所周知,Qt Creator是Qt官方提供的Qt集成开发环境1,提供了对Qt应用开发的全过程支持。也就是说,使用Qt Creator做Qt开发是完全够用的。不管是在Windows…

大疆无人机高程不准_大疆消费级无人机快速倾斜摄影测量实践

摘要:分别用 RTK两种测量模式测定像控点,用大疆消费级无人机 Phantom4PRO 开展倾斜摄影测量,最后进行成果检验。结果表明:RTK 电台模式(不做坐标校正,精度低)、RTK-CORS 网络模式测定像控点都能…

【转】CLR Profiler 性能分析工具 (转)

最近关注程序性能的优化方面,本想写篇CLRProfiler的简要文档,看到pengpeng已写好,那就转载好了,偷偷懒。 .Net的尽管拥有非常强大调试器,但也有很多局限性,只限于CLR之上,无法得到CLR的具体细节…

Qt学习资料汇总

1. 在线资源 脚本之家在线手册:Qt 快速入门系列教程W3CSchool:Qt 学习之路 2. 书籍资源 链接:https://pan.baidu.com/s/12zoOQykCA-J8x_1FVahFWA 提取码:关注公众号“Qt未来工程师”,后台回复“书籍”获取提取码。 …

魔百盒哪款型号配置高_松下负离子吹风机怎么样哪款好?推荐型号?2020年9月松下负离子电吹风选购攻略...

先说结论,方便时间不多的朋友,松下(panasonic)负离子吹风机怎么样哪款好?推荐型号?1、EH-ENE2-A405——松下(panasonic)负离子电吹风机推荐EH-ENE2-A405。带负离子功能,1…

【转】VS编译环境命令窗口中的命令

先描述一下VS中的几个窗口 命令窗口(Command Window) 利用命令窗口,可以查询并设置变量的值来控制程序的执行和输出,也可以在命令窗口中编写很多小的代码段来改变程序的输出。当程序处于中断模式时,命令窗口只允许输…

【软技能】代码先放一放,学习一下工程的概念

前言 本篇文章适合于以下同学阅读 接触编程时间不长的初学者;经常需要编程,但是对工程的概念相对模糊的同学。 初步认识工程 工程的概念大家或多或少都有接触过。比如在开发环境(如Qt Creator)里编写一个软件,我们…

python程序设计搜题软件_智慧职教APPPython程序设计基础答案搜题公众号

智慧职教APPPython程序设计基础答案搜题公众号更多相关问题暑淫证与火热证的共同点是A.都有明显的季节性B.脉数有力C.发热神昏D.舌红绛每种生物都是有自己特有的一套遗传密码。()患者,女,34岁。营业员&…

【转】WebAPI ASP.Net 发布部署中常见的两个错误未能找到 CodeDom未能加载System.Web.WebPages.Razor

未能加载文件或程序集“System.Web.WebPages.Razor, Version3.0.0.0, Culturene 未能找到 CodeDom 提供程序类型“Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft... 在包管理器中异常安装包MVC5 及 CodeDom,重新编译部署即可…

QSplitter设置宽高比例的正确方法

问题 实际开发中,需要经常调整QSplitter中子窗口的宽度/高度比例。对水平QSplitter来说,是宽度比例;对垂直QSplitter来说,是高度比例。下面以水平QSplitter为例说明。 我们首先应该会想起看看QSplitter是不是有设置比例的函数。…

我要回家软件_工具用的好,下班回家早,推荐几个堪称神器的高效率软件

工具用的好,下班回家早,别人已经早早下班,你还在哼哧哼哧的加班,有时候并不是你比别人慢,而是你没有找到提高工作效率的工具呀,我这次推荐几个堪称神器的高效率软件工具,也许能极大的提高你的工…