快速业务通道

IBM的Java诊断,第2部分 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-14
调用 View 菜单或通过右键单击 Templates 视图的任意位置,然 后选择 Export current settings as template。键入模板的名称,然后,EVTK 将该模板保存在 Templates 视图中以便将来使用。

更改颜色

您可以选择 EVTK 用于绘图的颜色。单击 View 菜单中的 Preferences 项,然后导航到 Displayers 类别中的 Display colors 页面,如图 12 所示:

图 12. 颜色首选项页面

IBM的Java诊断,第2部分(8)

时间:2011-11-02 IBM Holly Cummins

保存输出

您可以保存所有 EVTK 输出,方法是右键单击主面板,然后从所得到的上下文菜单中选择 Save,如图 13 所示。线图可以另存为 JPEG 图像,报告可以另存为 HTML,原始数据可以另存为 CSV 文件。本文中 的图形是从线图视图保存的。

图 13. 保存

使用建议

EVTK 提供详细 GC 日志中感兴趣的功能摘要及其调整建议。摘要和建议可通过 Report 选项卡中的报 告获得。

为什么需要进行干预并执行某些手动调整?垃圾收集器为了优化其性能已经执行了很多自动调整。但 是,它不知道您的优先级,也不知道在没有任何指导的情况下将对哪些方面进行取舍。对于所有工作负载 和所有环境来说没有最优配置。您可以执行的最简单的调整就是指定一个策略并告诉垃圾收集器是吞吐量 重要还是暂停时间最重要。 如果您敢于冒险或更渴望获得最佳性能,则可以尝试调整堆的大小、改变 nursery 的大小或尝试更大的最大 nursery 大小。

案例研究:诊断内存泄露

查看详细 GC 日志的主要原因之一就是检查应用程序的内存使用情况并确保其在某些方面没有问题。 例如,应用程序可能使用高于期望的内存,并且详细 GC 输出可以提供有关应用程序内存占用的指示。内 存泄露是相关但更严重的问题。 Java 平台的 GC 实用工具确保 Java 应用程序不会泄露内存,即使丢失 了对对象的所有引用之前没有释放对象也是如此。但是,如果应用程序没有正确地持有对象引用,则仍然 有可能会泄露,因为垃圾收集器将不会收集仍然被引用的对象。

软引用和弱引用 软引用 是在堆中可用空间不足的情况下可以清除的引用。它们对于内存敏感的高速缓存非常有用。弱引 用 是在所引用对象没有其他引用时将被清除的引用。它们对于将元数据与对象关联的映射以及维护侦听 器列表非常重要。当然,如果想永久保留映射中的所有内容,它们不太理想。

通常,诊断内存泄露非常简单。在应用程序上启用详细 GC,将它运行一段时间,然后在 EVTK 中绘制 使用的堆(收集之后)。当应用程序正在初始化或者应用程序的工作负载增加时,应用程序的内存使用自 然也将增加。如果没有任何明显的原因应用程序要增加内存要求时,使用的堆的线条向上蔓延,则有可能 存在泄露。EVTK 查找该模式并添加调整建议的注释(如果检测到可能存在泄露)。

虽然详细 GC 可能显示存在泄露,但它没有告诉您是哪个对象引起的这个泄露。在某些情况下,通过 检测代码才能够发现。考虑哈希映射和其他集合。它们所有都是静态的吗?它们是否都有删除对象以及添 加对象的机制?应用程序对其缓存对象是否过于慷慨?对象轮询也可能是内存泄露的原因。

如以下示例所示,弱引用和软引用都是解决内存泄露的强大工具。考虑确定有泄露的应用程序,如清 单 1 所示。它添加到映射,但从不清除它。

清单 1. 内存严重泄露的 Java 类

public class Leaker {   private Map things = new HashMap();   public void leak() {   while (true) {    things.put(new Date(), new Leak());   }   }   private class Leak   {   private Object data;   public Leak() {    data = new Object();   }   } }

IBM的Java诊断,第2部分(9)

时间:2011-11-02 IBM Holly

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号