0

我有一个使用 Netbeans 7.2 开发的 webapp (JSF 2),在 Tomcat 7 上运行。

使用 Netbeans 分析器,我看到在浏览器加载第一页之后(一个包含两个字段的简单表单!),内存使用量已经在 250Mb 左右波动,其中 char[]、byte[]、string 和 stringBuilder 占用大约 95% 的内存使用量。

我怎么知道是什么导致了如此高的内存使用?

4

1 回答 1

0

当您在内存分析模式下运行分析器时,您可以选择记录分配跟踪。这样您就可以追踪谁创建了这些数据。

当您想查看谁在引用数据以防止其被垃圾收集时,您可以进行堆转储(在分析会话期间)并在分析器的集成堆步行器中对其进行分析。

实际上,在您的情况下,我将从堆转储开始查看哪些更高级别的结构保留了大多数 char[] 和 byte[] 数组,然后查看内存分析快照并尝试在代码中找到它们被实例化的位置。

于 2013-03-07T22:57:26.513 回答