|
|
|
javafx 2.2 и heap space
|
|||
|---|---|---|---|
|
#18+
Добрый день. Сделал небольшую программулину у неё есть хидер (header.fxml) - в нём TabPane по акшену в центр вставляются разные fxml В контроллерах при инициализации вставляется TableView и заполняется. Попереключав несколько раз табы вывалится Java heap space, если же таблицы не заполнять данными то все нормально... Попробую пример привести не большой. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. Вообщем как-то так, помогите избавиться от утечек памяти. Благодарю заранее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2012, 23:36:49 |
|
||
|
javafx 2.2 и heap space
|
|||
|---|---|---|---|
|
#18+
Ну сначала надо найти причины - для этого jvisualvm в руки и вперед. Если сами не сможете, вылаживайте heap сюда, тут есть люди которые могут помочь. На вскидку - кэш какой-нибудь, actionListenerы часто текут и тд ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2012, 00:35:09 |
|
||
|
javafx 2.2 и heap space
|
|||
|---|---|---|---|
|
#18+
забыл ник , пытался найти утечку с помощью jvisualvm'ом, но тщетно... вот heap заранее благодарен всем откликнувшимся. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2012, 03:20:08 |
|
||
|
javafx 2.2 и heap space
|
|||
|---|---|---|---|
|
#18+
J2SE, у тебя в heap's содержится более 100 Мб в объекте TableCellBehavior и в районе 3 Мб внутри TableView. Скорее всего ты создаешь каждый раз новый TableView или назначаешь новый листенер или еще что-то в таком духе. Нужно, создать требуемый объект один раз и впоследствии ссылаться на него. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2012, 10:06:57 |
|
||
|
javafx 2.2 и heap space
|
|||
|---|---|---|---|
|
#18+
Adva, но ведь при засовывании каждый раз fxml контроллер инициализируется по новому, в нем соответственно и таблица и листнеры все по новому.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2012, 13:36:57 |
|
||
|
javafx 2.2 и heap space
|
|||
|---|---|---|---|
|
#18+
Посмотрите пожалуйста на структуру, подскажите где я чего накосячил... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2012, 03:58:13 |
|
||
|
javafx 2.2 и heap space
|
|||
|---|---|---|---|
|
#18+
если потычить несколько раз разным табам то начнется жор памяти ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2012, 03:59:23 |
|
||
|
javafx 2.2 и heap space
|
|||
|---|---|---|---|
|
#18+
Что нет ни у кого никаких соображений? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2012, 22:50:30 |
|
||
|
javafx 2.2 и heap space
|
|||
|---|---|---|---|
|
#18+
По каждому клику на таб у вас формируется новый UI из xml. Почему бы не делать этого если UI уже был загружен? Если это запланированый процесс, то нужно как-то ещё и выгружать созданные UI, когда они не нужны. Вот это код что делает? setCenter(getFxml("/resources/center.fxml")) и почему? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2012, 01:19:47 |
|
||
|
javafx 2.2 и heap space
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, я не могу понять как выгрузить из памяти UI которые были загружены ранее. BlazkowiczВот это код что делает? setCenter(getFxml("/resources/center.fxml")) и почему? этот код вставляет в статический BorderPane (в определенное место) новый UI. (рисунок). BlazkowiczПочему бы не делать этого если UI уже был загружен? а как это сделать можно? И ничего если у меня много таких fxml файлов, ведь опять все хранить придется в памяти?... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2012, 02:20:07 |
|
||
|
javafx 2.2 и heap space
|
|||
|---|---|---|---|
|
#18+
Обычно UI для всех табов сразу создаётся. http://docs.oracle.com/javafx/2/deployment/javafx_javascript.htm#BCEBGCGD если у вас табов сотни, то это немного странно. если табы вообще все динамические, то поищите как можно удалять\диспозить лишние. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2012, 11:25:46 |
|
||
|
javafx 2.2 и heap space
|
|||
|---|---|---|---|
|
#18+
Blazkowicz , табы динамические, так же данные в таблицах динамические. Подгружать все UI можно, но данные добавленные в таблицу после подгрузки UI уже отображаться не буду (а там нужны достоверные данные). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2012, 16:11:08 |
|
||
|
javafx 2.2 и heap space
|
|||
|---|---|---|---|
|
#18+
J2SEтабы динамические, так же данные в таблицах динамические. Для того чтобы поменять в таблице данные не обязательно менять саму таблицу. Вы когда текст в Word правите, он вам на каждую новую букву документ не пересоздаёт? J2SEПодгружать все UI можно, но данные добавленные в таблицу после подгрузки UI уже отображаться не буду (а там нужны достоверные данные). Данные отдельно, UI отдельно. Разделите их. Освойте MVC и MVP и жизнь наладиться. fxml это Layout - расположение компанент, почему оно у вас ещё с какимим-то данными связано? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2012, 16:26:50 |
|
||
|
javafx 2.2 и heap space
|
|||
|---|---|---|---|
|
#18+
J2SEтабы динамические, так же данные в таблицах динамические. Подгружать все UI можно, но данные добавленные в таблицу после подгрузки UI уже отображаться не буду (а там нужны достоверные данные). Вы всё время на каждый клик создаёте новый UI. А где вы его удаляете потом? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2012, 16:33:24 |
|
||
|
javafx 2.2 и heap space
|
|||
|---|---|---|---|
|
#18+
Blazkowicz fxml это Layout - расположение компанент он с данными не связан, от тех или иных условий данные заполняет контроллер. BlazkowiczВы всё время на каждый клик создаёте новый UI. А где вы его удаляете потом? Вы правы он нигде не удаляется от этого и съедает память. Сейчас реализовал метод который очищает все данные примерно так: Код: java 1. 2. 3. 4. 5. т.е. просто занулливаю все объекты, правильный ли такой подход? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2012, 18:35:16 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=37936099&tid=2131052]: |
0ms |
get settings: |
8ms |
get forum list: |
21ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
44ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
63ms |
get tp. blocked users: |
2ms |
| others: | 283ms |
| total: | 444ms |

| 0 / 0 |
