首页
|
新闻
|
新品
|
文库
|
方案
|
视频
|
下载
|
商城
|
开发板
|
数据中心
|
座谈新版
|
培训
|
工具
|
博客
|
论坛
|
百科
|
GEC
|
活动
|
主题月
|
电子展
注册
登录
论坛
博客
搜索
帮助
导航
默认风格
uchome
discuz6
GreenM
»
MCU 单片机技术
»
PowerPC
» 利用 Memory Dump Diagnostic for Java (MDD4J) 分析内存管理问题(5)
返回列表
回复
发帖
发新话题
发布投票
发布悬赏
发布辩论
发布活动
发布视频
发布商品
利用 Memory Dump Diagnostic for Java (MDD4J) 分析内存管理问题(5)
发短消息
加为好友
look_w
当前离线
UID
1066743
帖子
8283
精华
0
积分
4142
阅读权限
90
在线时间
233 小时
注册时间
2017-6-23
最后登录
2019-5-18
论坛元老
UID
1066743
1
#
打印
字体大小:
t
T
look_w
发表于 2018-8-13 21:54
|
只看该作者
利用 Memory Dump Diagnostic for Java (MDD4J) 分析内存管理问题(5)
探究数据结构您看到的第一个视图就是显示堆中成本最高的数据结构的柱形图。前接 “statics” 的名称表示在给定类静态字段根下的数据结构。紧接其后的指令说明如何探索数据结构,适用于所有选项卡中显示的数据结构。
在每个柱形的右侧(如图 17 所示)给出了数据结构的大小(有时会给出两个大小),柱形的长度就是通过该数据结构可获得的字节总数。通常,数据结构有重叠,一个数据结构的内容同时也是另一个数据结构的一部分。若出现此类共享,您将看到两个数字,第二个数字位于括号中。
图 17. 数据结构大小
共享显示通过其他数据结构可获得该数据结构的大小比例。换句话说,显示了与其他数据结构共享的数据结构。可以选择一个数据结构,更详细地查看其内容。若点击数据结构柱形图中的任意柱形,窗口右侧就会更新为显示选定结构内容的基本汇总。图 18 展示了在点击图 17 中所示的
EvaluateServlet
柱形时显示的汇总信息。
图 18. EvaluateServlet 汇总
如果不存在共享,选择列表就只有单独一个项目,表示整个数据结构。在与其他数据结构共享一个数据结构的各部分时,选择列表将包含多个项目,每个项目针对一个共享部分。每部分都是一个子数据结构,所有对象都是该部分的唯一部分。在部分列表中,您将看到构成此结构同时又作为其他结构的组成部分的部分(末尾处标有 “shared”)与仅是此结构的组成部分的部分(无前述后缀)之间的差别.
探索内容示意图为进一步了解一个部分的内部结构,点击数据结构类型的标有下划线的名称,或点击
数据结构
连接,选择集合类型(如图 19 所示)。您将看到一个弹出窗口,显示了选定部分的内容示意图(如图 20 所示)。
图 19. 选择数据结构类型
内容示意图显示了构成数据结构的具体内容。。它显示了数据结构如何利用集合(如 HashMap 或 Vector)来设定数据结构的元素的结构。图 20 和图 21 都是内容示意图的例子。应按照阅读 UML 或实体关系(ER)图的方式阅读示意图,每个节点都表示一个集合基础设施(例如,标准库实现 HashMap 的方式)或者目标程序包含的实体(例如,映射中的 String 键)。在两种情况下,对于集合和内含实体来说,内容示意图都隐藏了实现细节,所显示的唯一数字就是该实体实现细节的总体大小。
图 20. EvaluateServlet 内容示意图
图 20 显示了 EvaluateServlet 内容示意图。某些节点并未显示类名,这是由于这些实例对根类实例的大小无显著影响。此内容示意图显示了 500,000 个 String 实例的分配方式。
图 21 显示了更为复杂的内容示意图示例。
图 21. 复杂的内容示意图
类型图
如果内容示意图中的一个节点看起来过大,您可向下访问到显示该实体实现细节的视图。为此,双击内容示意图中的任意节点,您将看到另外一个弹出窗口,显示选定实体的类型图。图 22 显示了 EvaluateServlet(如图 20 所示)下的所有链引用的 Hashtable 的类型图。类型图显示一个实体的类(数据类型)相互连接的方式,显示每种类型对该实体在选定数据结构的内容示意图中所占大小的影响。
图 22. Hashtable 类型图
字段布局视图
如果类型图中的一个节点看起来过大,您可双击它,向下访问到字段布局视图(如图 23 所示)。对于支持此数据的堆快照(目前仅有 HPROF),此视图将显示选定类的字段以及该类的继承层次结构对于其实例大小的影响。通常,开发人员会为类添加很多字段,而未意识到为类所添加的每个整型字段都会在运行时与一个较大的因数(实例数量)相乘。例如,开发人员往往会为缓存计算添加字段,或在构建阶段仅添加必要的字段,而在应用程序的长期使用过程中,这些都不是必要的。
图 23. 字段布局视图
收藏
分享
评分
回复
引用
订阅
TOP
返回列表
电商论坛
Pine A64
资料下载
方案分享
FAQ
行业应用
消费电子
便携式设备
医疗电子
汽车电子
工业控制
热门技术
智能可穿戴
3D打印
智能家居
综合设计
示波器技术
存储器
电子制造
计算机和外设
软件开发
分立器件
传感器技术
无源元件
资料共享
PCB综合技术
综合技术交流
EDA
MCU 单片机技术
ST MCU
Freescale MCU
NXP MCU
新唐 MCU
MIPS
X86
ARM
PowerPC
DSP技术
嵌入式技术
FPGA/CPLD可编程逻辑
模拟电路
数字电路
富士通半导体FRAM 铁电存储器“免费样片”使用心得
电源与功率管理
LED技术
测试测量
通信技术
3G
无线技术
微波在线
综合交流区
职场驿站
活动专区
在线座谈交流区
紧缺人才培训课程交流区
意见和建议