|
Инструмент для профилирования программы
|
|||
---|---|---|---|
#18+
Всем привет! Подскажите пожалуйста, какой инструмент лучше всего использовать для профилирования программы? Мне нужно найти причину почему мои классы не не собираются GC. Сейчас я использую Nebeans 8.2. и встроенный профилировщик, он показывает, что некоторые мои классы не собираются GC, а причину понять не могу. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2020, 16:35 |
|
Инструмент для профилирования программы
|
|||
---|---|---|---|
#18+
Это немного неверный термин. Профилирование - это ближе к перформансу. Например что-то медленно работает. В твоем случае - это memory dump. И возможно Eclipse Memory Analyzer чтобы посмотреть кто удерживает твои объекты. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2020, 16:39 |
|
Инструмент для профилирования программы
|
|||
---|---|---|---|
#18+
eclipse mat ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2020, 16:40 |
|
Инструмент для профилирования программы
|
|||
---|---|---|---|
#18+
Mandarin Сейчас я использую Nebeans 8.2. уже есть Apache NetBeans IDE 11.3 пора перейти ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2020, 16:43 |
|
Инструмент для профилирования программы
|
|||
---|---|---|---|
#18+
Спасибо за советы! ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2020, 16:46 |
|
Инструмент для профилирования программы
|
|||
---|---|---|---|
#18+
Стековер как всегда - на страже нашего спокойствия. https://stackoverflow.com/questions/407612/how-to-get-a-thread-and-heap-dump-of-a-java-process-on-windows-thats-not-runnin ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2020, 16:50 |
|
Инструмент для профилирования программы
|
|||
---|---|---|---|
#18+
GC оперирует понятием достижимость (Reachability) узлов графа по отношению к другим узлам. Если считать что ссылка это ребро графа (Edge) а узел (Node) это объект. И если Мандарин насоздавал узлов которые достижимы из главного объекта (например это class Main) то GC их не убирает т.к. не имеет права. И да это могут быть стримы. Пулы. Коллекции. Синглтоны или просто долгоживущие сессионные объекты (хопа! нежданный поинт - проверить незакрытые Http sessions). Или просто ссылки из статик полей в другие объекты. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2020, 18:20 |
|
Инструмент для профилирования программы
|
|||
---|---|---|---|
#18+
В статик поля я-бы смотрел в первую очередь вообще. Главный источник текучки. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2020, 18:32 |
|
Инструмент для профилирования программы
|
|||
---|---|---|---|
#18+
У него хотелка - странная. Обычно исследование не с этого начинают. А с проблемы. Например OOM. Но он же не говорит про OOM. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2020, 18:49 |
|
Инструмент для профилирования программы
|
|||
---|---|---|---|
#18+
Ну ты совсем запозорил автора. Дай ему сатисфакцию! ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2020, 19:11 |
|
Инструмент для профилирования программы
|
|||
---|---|---|---|
#18+
mayton У него хотелка - странная. Обычно исследование не с этого начинают. А с проблемы. Например OOM. Но он же не говорит про OOM. На современных серверах и железе OOM можно ждать неделями Да и то, скорее всего, так и не дождаться. Т.к. сервис планово перезапустят или админы или какая нибудь автоматическая тулза мониторинга Т.ч. OOM на проде, это врят ли то, с чего стоит начинать ))) А то, что память течет, часто можно и без OOM увидить. IMHO p.s. в свое время наблюдал memory leak внутри Weblogick, админы лечили патчами ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2020, 19:21 |
|
Инструмент для профилирования программы
|
|||
---|---|---|---|
#18+
Она течет вообще каждую секунду. Архитектура Eden такая. Как говорится.... что для Java хорошо - для С++ - смерть. P.S. Я-бы детализировал термин т.к. в него вкладывают очень негативный посыл. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2020, 19:25 |
|
Инструмент для профилирования программы
|
|||
---|---|---|---|
#18+
Zzz79 там можно было дальше вообще не читать после того,как он написал что ГЦ классы его не собирает)) НУ да. Я тоже встал в ступор, думая о чем речь. Толи о Heap, толи о Perm Gen / Metaspace Но никакого криминала не вижу. AFAIK классы из PermGen / Metaspace вроде тоже Full GC вычищает. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2020, 19:28 |
|
Инструмент для профилирования программы
|
|||
---|---|---|---|
#18+
Обычно программы показывающие dump памяти умеют отделять живые объекты от мертвых (на которые нет ссылки).. Т.ч. в чем проблема - не понятно. Ну и если Full GC часто отрабатывает и после его работы Old Gen видимо глазу засирается, то тоже повод задаться вопросом Лично я конфигурирую eden побольше и запрешаю менять объем памяти. Повышенный интелект у runtime считаю недостатком, чем достоинством. Лично я люблю, что бы настройки были прибиты гвоздями А то в результате получается "Там автоматик мемори менеджемнт. Оракл умный. Ему виднее" ( C ) ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2020, 19:34 |
|
Инструмент для профилирования программы
|
|||
---|---|---|---|
#18+
Ну если он свой класслоадер делает то вполне возможно. Хотя его первый пост больше похож на оговорку. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2020, 19:50 |
|
Инструмент для профилирования программы
|
|||
---|---|---|---|
#18+
Zzz79 класс это шаблон и его удалить нельзя ниоткуда) "класс это шаблон" ))) AFAIK JVM файлы .class загружает в Perm Gen / Metaspace. Откуда они замечательно удаляются. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2020, 19:54 |
|
Инструмент для профилирования программы
|
|||
---|---|---|---|
#18+
Злые Вы. Все же фраза "экземпляры моих классов" достаточно длинная. Если следить за терминологической верностью, то буквы быстрее закончатся А если, к тому же, сначала попытаться дать терминологически верное определение самих терминов, то все остальные топики можно закрывать до конца века ))) ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2020, 20:00 |
|
|
start [/forum/topic.php?fid=59&msg=39967553&tid=2120789]: |
0ms |
get settings: |
22ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
69ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
361ms |
get tp. blocked users: |
2ms |
others: | 307ms |
total: | 798ms |
0 / 0 |