WEB开发网
开发学院软件开发Java IBM 的 Java 诊断,第 1 部分: 介绍面向 Java 的 ... 阅读

IBM 的 Java 诊断,第 1 部分: 介绍面向 Java 的 IBM 转储分析器(IBM Dump Analyzer)

 2010-04-01 00:00:00 来源:WEB开发网   
核心提示: 需要执行进一步调查前三项都可映射到某类 VM 问题,这些问题在本文的下一节阐述,IBM 的 Java 诊断,第 1 部分: 介绍面向 Java 的 IBM 转储分析器(IBM Dump Analyzer)(2),阅读本文后面的内容并不需要背景知识,您可以获得使用 Dump Analyzer 分析

需要执行进一步调查

前三项都可映射到某类 VM 问题,这些问题在本文的下一节阐述。

阅读本文后面的内容并不需要背景知识。您可以获得使用 Dump Analyzer 分析系统转储的分步指导,同时从较高层次大致了解该工具及其体系结构。阅读完本文后,您应当能够深刻地理解在何种情况下需要使用 Dump Analyzer,并对其基础架构有一定的了解。

从较高层次查看 VM 问题类型

VM 在执行时出现的故障可能有多种方式,每种故障都需要不同的诊断方法。在您详细了解 Dump Analyzer 的工作之前,有必要检视这些不同类型的问题以及为解决它们所需要做的分析。

内存不足

VM 可能由于内存不足而失败 — VM 使用 Java 堆内存或本地内存来存放线程堆栈、类信息、JIT 代码、图像元素以及其它与操作系统交互所需的器件。

诊断此类问题可能会异常困难,因为导致问题的内存分配本身并非罪魁祸首;某个大的内存集合可能一直在增长,直到 VM 最终耗尽所有可用堆空间。通常,需要检查堆的内容并将不同时期的堆快照进行对比,从而才能确定快速增长的内存集合。

死锁

所谓死锁,是指两个以上的进程之间互相等待对方释放资源。某个占有资源的线程(如监视器)无法获得另一资源的所有权,因为该资源被另一线程所有而且它正在试图获得第一个线程占用的资源的所有权。这种错误经常表现为性能问题。相对而言这比较容易诊断,只需检查线程状态以及它们所拥有的资源。

内部错误

导致内部错误的原因包括:

本机代码可能尝试访问具有无效输入(如过时的本地引用)或编码错误的对象。

垃圾收集器可能错误地收回某些存储,当引用这些存储时,似乎包含到尚未初始化内存的指针。

上一页  1 2 3 4 5 6 7  下一页

Tags:IBM Java 诊断

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接