我想知道在我的应用程序中处理单个请求所创建的额外对象的数量。
我记得OptimizeIt以前可以做到。我记得的步骤是:
- 将分析器附加到应用程序
- 在服务器上运行少量负载,以便发生所有初始化 Activity
- 分析器中的“强制 GC”,运行完整 GC
- “标记堆”,现在我们知道堆中每种类型的实例数量
- 向服务器发送一个请求。
- 探查器显示自上次“标记”以来创建了哪些对象
- 再次“强制GC”以查看是否有任何对象处于延迟状态
OptimizeIt 似乎不再积极开发(如果我错了,请纠正我),而且它似乎不支持 Mac OS X。
是否还有其他适用于 Mac OS X 的 Java 分析器支持我上面概述的场景?
最佳答案
JProfiler可以做到这一点。你
- 附加到正在运行的应用程序
- 开始记录分配
- 执行您的用例
- 拍摄堆快照并在堆遍历器选项对话框中选中“选择记录的对象”
那么堆遍历器的初始对象集将仅包含由您的用例创建的强引用对象。
免责声明:我公司开发JProfiler
关于适用于 Mac OS X 的 Java 分析器,支持标记堆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7934359/