我有一个webapp(JSF 2),我使用Netbeans 7.2开发,在Tomcat 7上运行。
使用Netbeans探查器,我看到在浏览器加载第一个页面之后(一个带有两个字段的简单表单!),内存使用量已经在250Mb左右波动,其中char [],byte [],字符串和stringBuilder占用了大约95%的内存使用量。
我怎么知道导致如此高内存使用的原因?
答案 0 :(得分:0)
在内存分析模式下运行分析器时,您可以选择记录分配跟踪。这样您就可以追踪创建这些数据的人。
当您想要查看谁正在引用数据以防止它被垃圾收集时,您可以进行堆转储(在分析会话期间)并在分析器的集成堆walker中进行分析。
实际上,在你的情况下,我将从堆转储开始,看看哪些更高级别的结构保留了大多数char []和byte []数组,然后查看内存分析快照并尝试查找代码中的位置实例化。