【问题标题】:How can I find the local variables in Heap file如何在堆文件中找到局部变量
【发布时间】:2014-04-24 20:26:36
【问题描述】:

我有一个 j2ee 应用程序并通过 visualVM 对其进行监控。

假设我有这样的方法:

public void doStuff(int param) {
    String s = getStringVariable(param);
    StringBuilder sb = new StringBuilder();
    //Do stuff with sb object
}

从线程水龙头中,我可以看到我的一些线程卡在了上述方法中。所以我生成了一个堆转储文件来弄清楚 s 和 sb 包含什么。

但是我该怎么做呢?我正在使用 Eclipse 内存分析器。

【问题讨论】:

    标签: java visualvm heap-dump eclipse-memory-analyzer


    【解决方案1】:

    你可以从你的线程中获取局部变量,因为如果一个局部变量是当前活动的,那么这意味着该变量的唯一引用是它自己的线程

    所以首先你需要列出你当前的线程,你可以这样做:

    1. 单击操作栏中的对象选项按钮。
    2. 选择 Java 基础 -> 线程概述和堆栈。

    然后列出特定线程的对象:

    • 右键单击->列表对象->传出引用

    然后在标签<Java Local>中搜索你的局部变量

    【讨论】:

    • 谢谢,现在我可以看到我所有的局部变量了。
    猜你喜欢
    • 2019-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-20
    • 1970-01-01
    • 1970-01-01
    • 2012-03-04
    • 1970-01-01
    相关资源
    最近更新 更多