Гость
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / Инструмент для профилирования программы / 17 сообщений из 17, страница 1 из 1
09.06.2020, 16:35
    #39967471
Mandarin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Инструмент для профилирования программы
Всем привет! Подскажите пожалуйста, какой инструмент лучше всего использовать для профилирования программы?
Мне нужно найти причину почему мои классы не не собираются GC. Сейчас я использую Nebeans 8.2. и встроенный профилировщик, он показывает, что некоторые мои классы не собираются GC, а причину понять не могу.
...
Рейтинг: 0 / 0
09.06.2020, 16:39
    #39967475
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Инструмент для профилирования программы
Это немного неверный термин. Профилирование - это ближе к перформансу. Например что-то медленно работает.

В твоем случае - это memory dump. И возможно Eclipse Memory Analyzer чтобы посмотреть кто удерживает
твои объекты.
...
Рейтинг: 0 / 0
09.06.2020, 16:40
    #39967477
lleming
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Инструмент для профилирования программы
eclipse mat
...
Рейтинг: 0 / 0
09.06.2020, 16:43
    #39967480
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Инструмент для профилирования программы
Mandarin
Сейчас я использую Nebeans 8.2.

уже есть Apache NetBeans IDE 11.3
пора перейти
...
Рейтинг: 0 / 0
09.06.2020, 16:46
    #39967481
Mandarin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Инструмент для профилирования программы
Спасибо за советы!
...
Рейтинг: 0 / 0
09.06.2020, 16:50
    #39967484
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Инструмент для профилирования программы
Стековер как всегда - на страже нашего спокойствия.

https://stackoverflow.com/questions/407612/how-to-get-a-thread-and-heap-dump-of-a-java-process-on-windows-thats-not-runnin
...
Рейтинг: 0 / 0
09.06.2020, 18:20
    #39967509
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Инструмент для профилирования программы
GC оперирует понятием достижимость (Reachability) узлов графа по отношению к другим узлам.
Если считать что ссылка это ребро графа (Edge) а узел (Node) это объект. И если Мандарин насоздавал
узлов которые достижимы из главного объекта (например это class Main) то GC их не убирает т.к. не имеет права.

И да это могут быть стримы. Пулы. Коллекции. Синглтоны или просто долгоживущие сессионные объекты (хопа! нежданный
поинт - проверить незакрытые Http sessions). Или просто ссылки из статик полей в другие объекты.
...
Рейтинг: 0 / 0
09.06.2020, 18:32
    #39967514
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Инструмент для профилирования программы
В статик поля я-бы смотрел в первую очередь вообще. Главный источник текучки.
...
Рейтинг: 0 / 0
09.06.2020, 18:49
    #39967526
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Инструмент для профилирования программы
У него хотелка - странная. Обычно исследование не с этого начинают. А с проблемы. Например OOM.
Но он же не говорит про OOM.
...
Рейтинг: 0 / 0
09.06.2020, 19:11
    #39967538
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Инструмент для профилирования программы
Ну ты совсем запозорил автора. Дай ему сатисфакцию!
...
Рейтинг: 0 / 0
09.06.2020, 19:21
    #39967541
Leonid Kudryavtsev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Инструмент для профилирования программы
mayton
У него хотелка - странная. Обычно исследование не с этого начинают. А с проблемы. Например OOM.
Но он же не говорит про OOM.

На современных серверах и железе OOM можно ждать неделями

Да и то, скорее всего, так и не дождаться. Т.к. сервис планово перезапустят или админы или какая нибудь автоматическая тулза мониторинга

Т.ч. OOM на проде, это врят ли то, с чего стоит начинать ))) А то, что память течет, часто можно и без OOM увидить.

IMHO

p.s. в свое время наблюдал memory leak внутри Weblogick, админы лечили патчами
...
Рейтинг: 0 / 0
09.06.2020, 19:25
    #39967543
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Инструмент для профилирования программы
Она течет вообще каждую секунду. Архитектура Eden такая.

Как говорится.... что для Java хорошо - для С++ - смерть.

P.S. Я-бы детализировал термин т.к. в него вкладывают очень негативный посыл.
...
Рейтинг: 0 / 0
09.06.2020, 19:28
    #39967544
Leonid Kudryavtsev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Инструмент для профилирования программы
Zzz79

там можно было дальше вообще не читать после того,как он написал что ГЦ классы его не собирает))

НУ да. Я тоже встал в ступор, думая о чем речь. Толи о Heap, толи о Perm Gen / Metaspace

Но никакого криминала не вижу. AFAIK классы из PermGen / Metaspace вроде тоже Full GC вычищает.
...
Рейтинг: 0 / 0
09.06.2020, 19:34
    #39967546
Leonid Kudryavtsev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Инструмент для профилирования программы
Обычно программы показывающие dump памяти умеют отделять живые объекты от мертвых (на которые нет ссылки).. Т.ч. в чем проблема - не понятно.

Ну и если Full GC часто отрабатывает и после его работы Old Gen видимо глазу засирается, то тоже повод задаться вопросом

Лично я конфигурирую eden побольше и запрешаю менять объем памяти. Повышенный интелект у runtime считаю недостатком, чем достоинством. Лично я люблю, что бы настройки были прибиты гвоздями

А то в результате получается
"Там автоматик мемори менеджемнт. Оракл умный. Ему виднее" ( C )
...
Рейтинг: 0 / 0
09.06.2020, 19:50
    #39967553
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Инструмент для профилирования программы
Ну если он свой класслоадер делает то вполне возможно. Хотя его первый пост больше похож на оговорку.
...
Рейтинг: 0 / 0
09.06.2020, 19:54
    #39967554
Leonid Kudryavtsev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Инструмент для профилирования программы
Zzz79
класс это шаблон и его удалить нельзя ниоткуда)

"класс это шаблон" )))

AFAIK
JVM файлы .class загружает в Perm Gen / Metaspace. Откуда они замечательно удаляются.
...
Рейтинг: 0 / 0
09.06.2020, 20:00
    #39967558
Leonid Kudryavtsev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Инструмент для профилирования программы
Злые Вы.

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

А если, к тому же, сначала попытаться дать терминологически верное определение самих терминов, то все остальные топики можно закрывать до конца века )))
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Инструмент для профилирования программы / 17 сообщений из 17, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]