是否有任何现有工具可以通过分配站点注释进行Java堆转储?使用这样的堆转储,除了按类类型聚合外,我们还可以通过其分配站点(粗略地说,创建对象的新语句)聚合运行时对象。
假设这种堆转储可用,您认为它对泄漏调试更有用吗?
答案 0 :(得分:2)
我帮助将此功能构建到HPjmeter中 - 但它是一个特定于平台的功能(意味着它仅在Itanium / HP-UX上可用)。解决特定类型的问题(例如识别正在进行大量短期分配并导致GC压力的站点)非常有用。对于大多数泄漏,泄漏对象在您的对象图中占主导地位,而您的标准工具将有助于可视化。
如果这确实是您的开发环境,收集此数据的标志是PrintAllocStatitistics
(同样,特定于平台!):
java ... -XX:+PrintAllocStatistics -Xverbosegc[0|1][:file=[filename[,[n][h][d][u][t]]]]
您还可以在线documentation了解有关此功能的更多信息。搜索分配统计