我有一个j2ee应用程序并通过visualVM进行监控。
让我们说我有这样的方法:
public void doStuff(int param) {
String s = getStringVariable(param);
StringBuilder sb = new StringBuilder();
//Do stuff with sb object
}
从线程点击,我可以看到我的一些线程卡在上面的方法中。所以我已经生成了一个堆转储文件,以找出s和sb包含的内容。
但我怎么能这样做?我正在使用Eclipse Memory Analyzer。
答案 0 :(得分:12)
你可以从你的线程中获取局部变量,因为如果局部变量当前是实时的,那么这意味着该变量的唯一引用是它自己的线程。 / p>
首先,您需要列出当前的线程,您可以通过以下方式执行此操作:
然后列出特定线程的对象:
然后在标记<Java Local>