-
.NET Memory Profiler
使用手册
1
简介
.Net Memory Pr
ofiler(
以下简称
Profiler)
< br>:专门针对于
.NET
程序,功能
最全的内存分析工具,最大的特点是具有内存动态分析(
Automatic
Memory
Analysis
)功能。
2
安装
3
使用方法
Profler
可以调试
4
种类型的
.N
ET
程序
,
分别为
:
?
桌面应用程序
?
WPF
程序
?
程序
?
.NET
Service
程序
对应选择软件的文件菜单如下
p>
Profler
调试共有三种方式选择
:<
/p>
?
启动跟踪
(Profiler
Application)
选定对应的调试方式
,
如调试桌面程序
,
选中<
/p>
Profiler Application,
然
后选择需要启动的执行文件
,Profiler
将作为
宿主程序启动程序开始实时监
控内存
.
?
附加进程
(Attach
Process)
将
Profile
r
附加到指定的进程上
,
此时不能实时
监控内存情况
,
只能够
收集内存镜像<
/p>
.
?
导入内存镜像
(Import Memory
Dump)
可以选择
dmp
为后缀的内存镜像文件
,
比如
< br>Windbg
以及
DebugDiag
< br>导出
的镜像文件
,
此时不能实时
监控内存情况
,
只能够收集内存镜像且不能跟踪
非托管资源
.
3.1
软件设置
为了加快
< br>Profiler
分析内存类型实例的速度
,
需要设置程序的符号路径
即
(Symbol
File Locations),
进入菜单
Tool->Op
tions->Preferences->Symobl File Locations,
< br>得到弹出菜单如下
图
.
选中”
Retrive
Debug
Symbols
..
”选项
,
该选项是为了将被调试程序需
要的
PDB
符号文件从
Http:///downlo
ad/symbols
下载
下来
.
p>
并选定一个目录缓存原来下过的符号路径
,
如果有其他的分目录存放
路径
,
则指定
”
Additional Symbols file
locations
”选项
.
注
:
如果选择了从微软网站下载符号会影响调
试程序的启动时间
,
建议使用
本地符号
集缓存
3.2
操作说明
3.2.1
启动程序
首先
,
选择需要调试类型
,
调试
ZLBH
桌面程序
,
选
择
Profiler
Applic
ation,
选择好需要启动的程序
exe
文件
.
如果需要设置启动参数
,
则设置好命令行参数以及工作目录<
/p>
.
选择”
Next
”进行收集数据的一些选项设
置
,
一般直接按”
Star
”按钮开
始调试程序
.
3.2.2
收集数据
选择菜单栏的收集按钮
p>
,
收集堆数据
,
第
一个为收集全部堆上的数据
,
第
二个为
只收集第
0
代的数据
.
3.2.3
重新启动和停止
调试完毕后通过停止
按钮跟踪程序
,
通过启动按钮重新启动上一次的调
试程序
.
-
启动
-
停止
3.2.4
查看收集数据
Profiler
p>
上有
6
个页卡
,<
/p>
分别为
:
?
Type/Resource
类型
/
资源页卡
?
Type/Resource Details
类型
/
资源明细页卡
?
Instance
Details
实例明细页卡
?
Call
Stacks/Methods
调用堆栈页卡
?
Navtive
Memory
本地内存页卡
?
Real-
Time-
实时跟踪页卡
3.2.4.1
Type/Resource
类型
/
资源页卡
类型
/
资源
页卡
,
可以看到当前收集的内存快照的实例数
< br>/
实例字节数等
信息
.
通过类型
/
资源网格
的上部可以过滤出需要的信息
,
共有四个地方可以过
滤
,
从左到右分别为
:<
/p>
?
资源类型
托管资源
非托管资源
?
警告类型
Profiler
自动分析的内存问题警告类型
?
命名空间
类型的命名空间
?
类型名称
按输入过滤类型名称
类型的过滤还可
以通过
,
”
Show
type/Resource
”下拉框过滤出所有的已
有类型
.
“
Show hierarc
ical
”通过命名空间分类显示类型和资源
.
Live Instances
列显示当前活动的实例数
Total:
总共建立的实例数
New:
新建的实例数
Remved:
已经销毁的实例数
Delta:New
–
Remove
d,
新建和销毁数的差值
.
Comparison SnapShop:
另一个用来比较的
内存快照来比较两个快照的差别
3.2.4.2
Type/Resource Details
类型
/
资源明细页卡
通过在
Type/Resource
视图中选中某个类型则显示类型资
源的明细信息
,
包
括该类型下所有的类
型实例
.
左侧包括的信息包括
:
?
是否新建的实例
?
实例号
?
被引用的次数
?
实例所占用的内存大小
?
实例的代信息
?
实例的子级对象所占用的内存大小
右侧包含
Allocation
Stacks
和
Shortest Root Paths,<
/p>
如果不是实时跟踪
,
则没有
Allocation
Stacks
页卡
.
?
Allocation St
acks
显示的是
Win32
调用路径
?
Shortest
Root
Paths
显示的是从根对象到当前实例的引用路径
,
查看顺
序从下往上
,
为根到实例的路径
.
3.2.4.3
Instance
Details
实例明细页卡
通过点击
Type/Resource
Details
类型
/
资源明细页卡
上的单个实例
,
显示这
个实例的明细信
息
,
显示的主要内容包括
:
?
Referenced By
被引用的关系
?
References
引用的关系
?
Field Value
属性的值
3.2.4.4
Call
Stacks/Methods
调用堆栈页卡
显示调用及方法堆栈
,
可以选择只包含托管代码和非托
管代码
显示方法所调用的函数及被调用的函数关系,如图:
-
-
-
-
-
-
-
-
-
上一篇:发自肺腑的九大职场忠告,绝对经典!
下一篇:不愿扔东西的人很敏感(小习惯看性格)