有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

使用yourkit进行内存分析所用的java时间

在一台150G机器上评测一个大约100G内存消耗的java应用程序通常需要多长时间?我大约在2小时前开始分析,到目前为止,只完成了20%。自从我开始评测以来,jvm使用的总内存已经上升到150G(接近RAM大小)。 在使用yourkit评测时,高内存进程占用大量时间是正常的还是我做错了什么。有没有可能因为内存已经到达RAM内存,大量的磁盘交换正在发生,这会减慢内存分析的速度。 我怎样才能让这个过程更快。如果不可能使其更快,那么还有哪些方法可以调查java应用程序中的内存泄漏


共 (1) 个答案

  1. # 1 楼答案

    你的JVM很大:)

    如果您有一个正在运行的JVM,获取堆中对象信息的最快方法是获取jmap直方图:

    jmap -histo:live <pid>
    

    它将打印堆中的所有活动对象(:live does a gc)、它们的实例数以及它们的(浅层)大小

    当然,它不适合进行复杂的分析,但它通常足以让你找到漏洞,尤其是在漏洞很大的情况下:将柱状图与泄漏前的柱状图进行比较

    http://docs.oracle.com/javase/7/docs/technotes/tools/share/jmap.html的文件