bgu*_*uiz 7 java profiling memory-management
这是一个更具体的问题,可以跟进我最近提出的另一个问题.这个问题的正确答案也将为之前的问题获得正确答案(因为那仍然处于不确定状态)!
基本上我有一个带有内存泄漏问题的Java桌面应用程序.我正在使用Netbeans IDE中的内存分析器来分析内存问题.这些是我到目前为止所采取的步骤:
最终结果是我在*.hprof文件中保存了几个内存转储.Netbeans IDE允许我仔细阅读这些内存转储的内容(基本排序和搜索),甚至让我通过查看每个实例中包含的引用以及其他引用每个实例的内容来遍历堆.这一切都很好,我已经能够确定1或2个相当明显的内存泄漏,并纠正了迄今为止大约15%的问题.
但是,现在我使用的方法依赖于创建关于哪些对象在特定时间点不应该在内存中的假设,然后调查这些假设.我现在的方法是比较两个单独的堆转储:基本上我有两个堆转储应该几乎相同,因为应用程序已恢复到相同的状态.
但是,一个是在内存泄漏之前,另一个是在内存泄漏之后,所以它们显然是不同的.如果我能够使用工具比较这两个堆,而不是像我现在那样手动比较,那么我不需要依靠假设来识别泄漏发生的位置,并且可以让工具为我识别它们.
这对我来说很重要,因为这个特定应用程序所涉及的类和实例数量庞大(700多万和数百万,具有代表性)
Netbeans IDE的分析器能够做到这一点吗?
如果没有,是否有一个能够执行此任务的工具?
谢谢!
| 归档时间: |
|
| 查看次数: |
11190 次 |
| 最近记录: |