我正在寻找任何允许我在运行时查看如何在堆上创建对象的工具。 我正在使用VisualVM - 配置文件但是无法找到何时创建特定类型的变量(我正在查找的变量)。也许我做错了什么...... 我还要感谢如何使用任何API获取此类信息。
此致 马尔钦
答案 0 :(得分:4)
通常情况下,个人资料工具(例如JProfiler)会允许您查看此内容 - 请参阅Allocation recording explained截屏视频。
但是,他们通过将代理程序附加到JVM来实现此目的,该代理程序允许它们拦截低级别操作 - 这些信息通常不可供用户或Java程序使用。因此,您将无法通过JMX应用程序(如JConsole或JVisualVM)查看堆。
答案 1 :(得分:2)
在VisualVM Profiler中,选择“设置”并指定要分析的类。也许你还需要查看哪个记录分配堆栈的选项。
答案 2 :(得分:1)
听起来您正在尝试调试程序,并且使用调试器将是最佳选择。在为变量分配您要查找的值时,您应该能够添加条件断点来停止程序。这将允许您查看当时的所有值和调用堆栈,以查看调用它的内容。