|
|
|
Помогите с анализом дампа кучи
|
|||
|---|---|---|---|
|
#18+
Доброго вам дня, уважаемые гуру) Занялся поиском утечек памяти в приложении. Так вот, после отработки сборщика мусора остаются в живых некоторые объекты. Не могу понять почему. Для примера интересует GUI.personal.RulePass_gui ссылка на дамп: https://www.dropbox.com/sh/qublrunvqovdbme/AACF3kZTHg56GTSXn-NYYEB_a Заранее благодарю за помощь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2014, 10:32 |
|
||
|
Помогите с анализом дампа кучи
|
|||
|---|---|---|---|
|
#18+
Имя потока - safe_ref ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2014, 10:47 |
|
||
|
Помогите с анализом дампа кучи
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, спасибо, что откликнулись. Я видел, что ссылка идет туда. Но, в том потоке, на мой взгляд, нет ничего криминального. Поток работает в фоне, а в момент когда я снимал дамп, поток был в ожидании, да в принципе, после запуска приложения поток дальше Class take = tasks.take(); не заходил, т.к. чтобы в tasks попал объект, нужно было выполнить действия, которые не выполнял. Не понимаю, почему этот поток держит объекты :( Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2014, 10:54 |
|
||
|
Помогите с анализом дампа кучи
|
|||
|---|---|---|---|
|
#18+
закомментировал запуск потока. в итоге картина такова: ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2014, 11:01 |
|
||
|
Помогите с анализом дампа кучи
|
|||
|---|---|---|---|
|
#18+
Ваш класс References имеет статическое поле REFERENCES_PERSONAL, которое и ссылается на GUI.personal.RulePass_gui. Что именно не понятно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2014, 11:12 |
|
||
|
Помогите с анализом дампа кучи
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, спасибо! Уже все понял, исправляю) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2014, 11:13 |
|
||
|
Помогите с анализом дампа кучи
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, еще один вопрос. Подскажите пожалуйста, как грамотно сделать unbind при закрытии формы для такого кода: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2014, 11:35 |
|
||
|
Помогите с анализом дампа кучи
|
|||
|---|---|---|---|
|
#18+
danatriel, Разве не так? Код: java 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2014, 12:00 |
|
||
|
Помогите с анализом дампа кучи
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, danatriel как вы такие красивые картинки дампа делаете? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2014, 12:17 |
|
||
|
Помогите с анализом дампа кучи
|
|||
|---|---|---|---|
|
#18+
redwhite90как вы такие красивые картинки дампа делаете? JDK/bin/jvisualvm ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2014, 12:19 |
|
||
|
Помогите с анализом дампа кучи
|
|||
|---|---|---|---|
|
#18+
Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2014, 12:33 |
|
||
|
Помогите с анализом дампа кучи
|
|||
|---|---|---|---|
|
#18+
redwhite90,ну или в netbeans есть свое средство профилирования (то же самое, что и visualvm), но можно переходить к исходникам прям оттуда ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2014, 12:34 |
|
||
|
Помогите с анализом дампа кучи
|
|||
|---|---|---|---|
|
#18+
danatrielBlazkowicz, еще один вопрос. Подскажите пожалуйста, как грамотно сделать unbind при закрытии формы для такого кода: По моему скромному мнению, самое грамотное решение - использовать WeakReference для слушателей, тогда никакого "unbind" делать не надо. Но не знаю, как с этим обстоят дела в JavaFX. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2014, 17:28 |
|
||
|
Помогите с анализом дампа кучи
|
|||
|---|---|---|---|
|
#18+
Хотя, не важно как с этим в JavaFX, weak ссылки нужно хранить в модели и все будет хорошо :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2014, 17:53 |
|
||
|
Помогите с анализом дампа кучи
|
|||
|---|---|---|---|
|
#18+
HoBTIDПо моему скромному мнению, самое грамотное решение - использовать WeakReference для слушателей, тогда никакого "unbind" делать не надо. Так это. А где-то надо ссылку на слушателя хранить, чтобы он не собрался когда не надо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2014, 22:47 |
|
||
|
Помогите с анализом дампа кучи
|
|||
|---|---|---|---|
|
#18+
BlazkowiczТак это. А где-то надо ссылку на слушателя хранить, чтобы он не собрался когда не надо. Да, ссылку хранит тот, кто вешает слушателя: контроллер, в случае MVC, модель представления, в случае MVVM, или само представление, если не использовать паттерны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2014, 09:58 |
|
||
|
Помогите с анализом дампа кучи
|
|||
|---|---|---|---|
|
#18+
Например, если в случае MVC сслыка на контроллер у нас хранится только в форме, то при ее закрытии контроллер становится unreachable, т.к. только он содержит обычные ссылки на слушателей, они становятся weakly reachable и собираются сборщиком мусора. Про отвязку модели от формы беспокоиться не надо, все произойдет автоматически. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2014, 10:05 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38700219&tid=2126879]: |
0ms |
get settings: |
11ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
58ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
| others: | 205ms |
| total: | 356ms |

| 0 / 0 |
