![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
Svetlana98 |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 27.4.2009 Репутация: нет Всего: нет |
Добрый день всем
я совсем новичек, и написала малюсенькую программку, обычная напоминалка, которая напоминает что нужно проверить систему по времени, :появляется окошечко, при нажатии на него переключается на мониторинг ... программка простенькая : сравнивается имя и время, и если совпадает, то окошко появляется. я использовала ScheduledExecutorService, и все бы хорошо, но шеф увидел, что моя программка, кушает много памяти...: "утечка памяти: 24 Мб при запуске,> 50 Мб после 2 часов работы!" <= сказал шеф... ![]() По моим наблюдашкам в Task Manager, память растет при каждом "ping" ... подскажите пожалуйста, как мне быть Может косяк где то не тут...
|
|||
|
||||
Dummy |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 263 Регистрация: 21.5.2007 Репутация: 9 Всего: 19 |
Если начать с простого, то можно предположить, что какой-то из методов, которые вы регулярно зовёте (nameComp(), metTimeCompare(), changVisible2()) каким-либо необратимым образом гадит в память: добавлят элемент в коллекцию и не удаляет, вешает листенер и забывает про него и т. п. Их код вы не приводите, а без него не угадаешь.
Вы пробовали анализировать ваше приложение чем-нибудь типа MAT? |
|||
|
||||
Svetlana98 |
|
||||||
![]() Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 27.4.2009 Репутация: нет Всего: нет |
я еще не делала рефактор, все тут в двух классах напичкано.. не сильно громко смейтесь...
------------------------------------ Создаются файлики для программочки
Добавлено @ 19:45
Добавлено @ 19:56 там два метода для имени и shedul, но работает по одному )) не успела удалить, сообщение уже отправилось сюды .. Это сообщение отредактировал(а) Svetlana98 - 19.4.2013, 21:45 |
||||||
|
|||||||
Svetlana98 |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 27.4.2009 Репутация: нет Всего: нет |
Добрый вечер Dummy вы писали "Вы пробовали анализировать ваше приложение чем-нибудь типа MAT? " ... они вылетали у меня каждый раз, когда я запускала приложение.. )) Но а если серьезно, если вы про отладку по дампам, или что то в этом роде, то не очень опытна в этом... не делала... ![]() |
|||
|
||||
Dummy |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 263 Регистрация: 21.5.2007 Репутация: 9 Всего: 19 |
Запустил программу в том виде, что вы выложили, на Win 7 x64, JDK 1.7.0_04. Вообще утечки не наблюдал. Понаблюдал за программой в VisualVM. Да, использование памяти дорастает до ~30-35 Mb, но потом, после очередного GC, падает до единиц Mb - и так периодически.
Это сообщение отредактировал(а) Dummy - 20.4.2013, 01:35 |
|||
|
||||
Svetlana98 |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 27.4.2009 Репутация: нет Всего: нет |
может я что то не так делаю, но память растет уже 30 минут, а GC ко мне так и не пришел...
Я завтра протестирую... Спасибо за участие, Dummy, напишу как у меня получилось.. |
|||
|
||||
Svetlana98 |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 27.4.2009 Репутация: нет Всего: нет |
Вчера GC пришел через пол тора часа, главное что пришел парень
![]() а в в Memory Analyzer получила : Problem Suspect 1 One instance of "javax.swing.UIManager$LAFState" loaded by "<system class loader>" occupies 219 440 (18,64%) bytes. The instance is referenced by sun.awt.AppContext @ 0x36a891d0 , loaded by "<system class loader>". The memory is accumulated in one instance of "java.util.Hashtable$Entry[]" loaded by "<system class loader>". Keywords javax.swing.UIManager$LAFState java.util.Hashtable$Entry[] ---------------------------------------------- Problem Suspect 2 1 626 instances of "java.lang.Class", loaded by "<system class loader>" occupy 562 896 (47,82%) bytes. Biggest instances: •class java.lang.System @ 0x5bee1a0 - 71 320 (6,06%) bytes. •class sun.java2d.loops.GraphicsPrimitiveMgr @ 0x627c098 - 64 760 (5,50%) bytes. •class java.lang.ref.Finalizer @ 0x5bfeec0 - 47 400 (4,03%) bytes. •class java.awt.Toolkit @ 0x5fe1ee0 - 37 536 (3,19%) bytes. •class java.nio.charset.Charset @ 0x5c92110 - 31 976 (2,72%) bytes. •class sun.font.FontManager @ 0x61801f0 - 23 432 (1,99%) bytes. •class sun.util.LocaleServiceProviderPool @ 0x5f92010 - 13 040 (1,11%) bytes. •class java.awt.AWTKeyStroke @ 0x6230c28 - 11 816 (1,00%) bytes. Keywords java.lang.Class Попробую конечно что то в коде изменить.. Поможет ли это сильно , не знаю )) Это сообщение отредактировал(а) Svetlana98 - 20.4.2013, 15:30 |
|||
|
||||
Farmazon |
|
|||
![]() Разработчик ![]() ![]() Профиль Группа: Участник Сообщений: 265 Регистрация: 7.7.2006 Репутация: 1 Всего: 5 |
ограничение сверху для кучи jvm задано сверху(-Xmx)?... Не поможет - смотри профайлером куда память течёт...
-------------------- Таково моё общее мнение. |
|||
|
||||
Svetlana98 |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 27.4.2009 Репутация: нет Всего: нет |
Dummy и Farmazon спасибо за подсказки !!!!! ![]() я memory snapshotила всю ночь... и ... что самое интересное.. я немного поменяла код, маленький рефактор сделала (поменяла название класса, переменных...), один класс статиком сделала, не знаю что повлияло, но вроде сейчас нормально ... Я думаю неправильные названия переменных жрали память ![]() Я года три не программила, все забыла, ребята спасибо ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |