代码之家  ›  专栏  ›  技术社区  ›  Martin Wickman

如何在Eclipse探查器中显示java.Lang.*对象分配?

  •  2
  • Martin Wickman  · 技术社区  · 14 年前

    使用Eclipse探查器,我对java.lang中分配的类实例的数量感兴趣(例如 String )我还想知道电话号码 String.equals() 等。

    我使用“对象分配”选项卡,并显示应用程序中的所有类和计数,但是 没有提到任何标准的Java类。

    例如,这个愚蠢的代码在“对象分配”选项卡中显示为 1000 Foo , 7 byte[] , 4 char[] 2 int[] . 没有别的了。

    public static void main(String[] args) 
    {
        Object obj[] = new Object[1000];
        for (int i = 0; i < 1000; i++) {
            new Foo();  // Some custom class
            obj[i] = new StringBuffer("foo" + i);
        }
        System.out.println (obj[30]);
    }
    

    貌似分析器只是忽略了任何一个Java.*包中的所有东西。同样适用于执行统计。

    我需要为核心Java类启用仪器,还是在这里缺少一些设置?

    1 回复  |  直到 14 年前
        1
  •  0
  •   Amir Afghani    14 年前

    如果您使用的是列出的同一个Eclipse事件探查器 here 您需要设置包含/排除筛选器。在您的情况下,您可以将特定的包或类添加到包含筛选器中,或者直接从预先定义的排除筛选器中删除它。我认为前者是更保守的方法,对应用程序性能的影响很可能更低。从排除筛选器中删除某些内容可能会导致删除的内容超出预期或需要的范围,这意味着会检测更多的代码。