【问题标题】:how to profile java application using visualVM?如何使用 VisualVM 分析 Java 应用程序?
【发布时间】:2014-02-24 09:47:12
【问题描述】:

我的老板希望我分析我们的产品应用程序,看看我们是否可以在内存使用方面得到一些改进。当我分析内存时,我得到了这个:

最后一栏(“世代”)是什么意思?如何使用这些信息分析应用程序?

【问题讨论】:

  • 好吧,我要做的就是寻找performance problems 并清除它们。迟早,内存分配将是最大的性能问题,然后您也可以将其清除。换句话说,通过后门接近它。如果你认为你没有加速空间,我保证你可以做任何减少内存分配的事情都会给你一个显着的加速。

标签: java performance jvm profiler visualvm


【解决方案1】:

关于“世代”栏:

VisualVM 随你的 Sun JDK6 免费提供,源自 Netbeans, 在 JAVA_HOME/bin 中查找 jvisualvm。它包含一个内存分析器 使用称为“幸存世代”(或简称 “世代”)。那么什么是幸存的一代呢?幸存下来 世代:上分配的所有对象的不同年龄数 自分析会话开始后的 JVM 堆。对象年龄: 对象的年龄是对象具有的垃圾回收次数 活下来了。

摘自http://www.munzandmore.com/2011/ora/memleak

关于如何分析数据,这是一个广泛的主题。我建议你看看这个:

http://my.safaribooksonline.com/book/programming/java/9780137001040

【讨论】:

  • 很抱歉我没有迅速回复。但是第二个链接是一本书而不是免费的,你能免费给我一些信息吗?对于“世代”这一行,我可以这样理解吗:对于一个对象,如果世代的数量总是增加并且从不减少,这意味着该对象永远不会被 GC 收集?
  • 你对世代的理解是正确的。关于 GC 调优的免费资源,请阅读以下内容,但如果可以的话,请尝试在上一个链接上找到这本书。 oracle.com/technetwork/java/javase/gc-tuning-6-140523.html
  • 非常感谢,我找到了你提到的那本书,非常有用。
【解决方案2】:

this 博文中解释了幸存的世代。

【讨论】:

    猜你喜欢
    • 2013-12-29
    • 2011-05-25
    • 2023-03-03
    • 1970-01-01
    • 1970-01-01
    • 2015-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多