我有一个 j2ee 应用程序并通过 visualVM 监控它。
假设我有这样的方法:
public void doStuff(int param) {
String s = getStringVariable(param);
StringBuilder sb = new StringBuilder();
//Do stuff with sb object
}
从thread tap可以看出我的一些thread卡在了上面的方法中。所以我生成了一个堆转储文件来弄清楚 s 和 sb 包含什么。
但是我该怎么做呢?我正在使用 Eclipse 内存分析器。
最佳答案
您可以从您的线程中获取局部变量,因为如果一个局部变量当前是 Activity 的,那么这意味着该变量的唯一引用是它自己的线程。
所以首先你需要列出你当前的话题,你可以通过以下方式做到这一点:
- 单击操作栏中的对象选项按钮 .
- 选择 Java Basics -> Threads Overview and Stacks。
然后列出特定线程的对象:
- 右键单击 -> 列出对象 -> 传出引用
然后在标签 <Java Local>
中搜索您的局部变量
关于java - 如何在堆文件中找到局部变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22491527/