Как отобразить распределение объектов java.lang. * В профилировщике Eclipse? - PullRequest
2 голосов
/ 07 июня 2010

Используя профилировщик 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 Ответ

0 голосов
/ 08 июня 2010

Если вы используете тот же профилировщик Eclipse, который указан в списке здесь , вам необходимо настроить фильтры включения / исключения. В вашем случае вы можете добавить конкретный пакет или класс в фильтр включения или просто удалить его из предварительно определенного фильтра исключения. Я бы предпочел, чтобы первый подход был более консервативным и, скорее всего, будет оказывать меньшее влияние на производительность вашего приложения. Удаление чего-либо из фильтра исключения может привести к тому, что оно удалит больше, чем вы предполагали или хотели, а это означает, что инструментировано больше кода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...