分配注释堆转储

3

是否有现成的工具可以带有分配站点注释地获取Java堆转储?通过这样的堆转储,我们可以按其分配站点(大致上是创建该对象的新语句)聚合运行时对象,除了按类类型聚合。

假设有这种类型的堆转储,您认为它对于泄漏调试更有用吗?


大多数商业分析工具都可以做到这一点。例如,YourKit可以在程序运行时通过各种报告或从其中一个转储中提供此信息。请注意:Java堆转储不包含此信息。 - Peter Lawrey
1个回答

2
我帮助将此功能构建到HPjmeter中 - 但它是平台特定的功能(意味着仅在Itanium / HP-UX上可用)。 它有助于解决特定类型的问题(例如,识别正在进行大量短期分配并对GC压力做出贡献的站点)。 对于大多数泄漏,泄漏对象占据您的对象图,并且您的标准工具将帮助可视化这一点。

如果这确实是您的开发环境,则收集此数据的标志是PrintAllocStatitistics(同样,仅适用于特定平台!):

 java ... -XX:+PrintAllocStatistics -Xverbosegc[0|1][:file=[filename[,[n][h][d][u][t]]]]

您还可以在在线文档中了解有关此功能的更多信息。搜索“分配统计信息”。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接