Там инструменты должны проанализировать большие дампы "кучи" Java, не загружая полный hprof файл?

Этот парень здесь должен был сделать обратный переход. Таким образом, он перечислил лучшие 10 различий Java и C#. Я возьму его темы и покажу, как это сделано в Java:

Глюк № 10 - Дают мне мой стандартный вывод!

Для печати к стандартному выводу в Java:

System.out.println("Hello");

Глюк № 9 - Пространства имен == Свобода

В Java у Вас нет свободы пространств имен. Структура папок Вашего класса должна соответствовать имени пакета. Например, класс в пакете org.test должен быть в папке Глюк № 8 org/test

- Что произошло с супер?

В Java для обращения к суперклассу Вы используете зарезервированное слово super вместо base

Глюк № 7 - Объединение в цепочку конструкторов основному конструктору

, у Вас нет этого в Java. Необходимо ли вызвать конструктора собой

Глюк № 6 - Dagnabit, как я разделяю существующий класс на подклассы?

Для разделения на подклассы класса в Java делают это:

public class A extends B {
}

, Который означает, класс A является подклассом класса B. В C# был бы class A : B

Глюк № 5 - Почему don’t константы остаются постоянными?

Для определения константы в Java используют ключевое слово final вместо const

Глюк № 4 - Где ArrayList, Vector или Hashtable?

наиболее используемые структуры данных в Java HashSet, ArrayList и HashMap. Они реализуют Set, List и Map. Конечно, существует набор больше. Читайте больше о наборах здесь

Глюк № 3 - Средств доступа и Мутаторов (Методы get и Методы set)

, у Вас нет средства свойств в Java. Необходимо объявить получать, и устанавливает методы для себя. Конечно, большинство IDE может сделать это автоматически.

Глюк № 2 - не Может я переопределять!?

Вы не должны объявлять метод virtual в Java. Все методы - кроме тех заявленных final - могут быть переопределены в Java.

И № 1 gotcha†¦

В Java типы примитивов int, float, double, char и long не Object с как в C#. У всех них есть представление соответствующего объекта, как [1 126], Float, Double, и т.д.

Вот именно. Не забывайте видеть исходная ссылка , существует более детальное обсуждение.

8
задан Mark 25 November 2009 в 09:44
поделиться

2 ответа

Файлы hprof имеют формат, который на самом деле плохо работает без их полной загрузки с последующим применением перекрестных ссылок.

Однако вы можете пропустить дамп hprof для получить базовую информацию от работающей виртуальной машины с помощью jmap , jstack и visualvm , включенных в пакет JDK. Типичные утечки памяти, например, уже должны быть видны из гистограммы кучи jmap, так как вы можете угадать места, которые производят или сохраняют объекты, просто взглянув на количество экземпляров определенного класса.

3
ответ дан 5 December 2019 в 23:15
поделиться

Последние версии YourKit обрабатывают большие дампы кучи намного лучше, чем раньше. Я добился успеха и очень рекомендую. Давным-давно был инструмент под названием Auptyma от Вирага Саксены, но похоже, что он мог быть куплен Oracle.

2
ответ дан 5 December 2019 в 23:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: