powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / корректное освобождение памяти в java
7 сообщений из 7, страница 1 из 1
корректное освобождение памяти в java
    #39313878
Mari.P
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
дано:
Java project
По таймеру один раз в полчаса должен изменяться текст в компоненте JLabel

Делаю так:
Код: java
1.
2.
3.
public class MyProg extends JFrame {
   
  private JLabel TimeLabel;




Код: 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.
30.
31.
32.
33.
34.
35.
36.
37.
 public MyProg() {
      
	   
    // заголовок окна 	   
     super("Окно"); 
    // делаем окно максимальным 
     setExtendedState(JFrame.MAXIMIZED_BOTH);
     
     
//////////////////////создали листенер ////////////////////////////////// 
ActionListener timerlistener = new ActionListener() {
public void actionPerformed(ActionEvent e)  {

 long curTime = System.currentTimeMillis();
 String curStringDate = new SimpleDateFormat("dd.MM.yyyy HH.mm.ss").format(curTime);
 buttonsPanel.remove(TimeLabel);
 TimeLabel=new JLabel("          "+curStringDate);
 buttonsPanel.add(TimeLabel);
 validate(); 
                                                          }
                                                                  } 
/////////////////////////////////////////end listener////////////////////////////////


   Timer timer1 =new Timer(1800000,timerlistener);
   timer1.setInitialDelay(3000);
   timer1.start();                                                       
   long curTime = System.currentTimeMillis(); 
   String curStringDate = new SimpleDateFormat("dd.MM.yyyy HH.mm.ss").format(curTime);
        TimeLabel=new JLabel("          "+curStringDate);
        
        /* Кнопки обновить, закрыть  */
        buttonsPanel = new JPanel(new FlowLayout());
        buttonsPanel.add(TimeLabel);
        add(buttonsPanel, BorderLayout.SOUTH);
	      
} 




Проблема - некорректно идет небольшая утечка памяти. Я думала, что buttonsPanel.remove(TimeLabel) очищает полностью память,
выделенную под компоненты, подскажите пожалуйста уважаемые профессионалы, как в этом случае грамотно освобождать память.
...
Рейтинг: 0 / 0
корректное освобождение памяти в java
    #39313893
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как вы обнаружили что "идет небольшая утечка памяти". И почему решили что она идет именно отсюда?
...
Рейтинг: 0 / 0
корректное освобождение памяти в java
    #39313899
Сергей Арсеньев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mari.PПроблема - некорректно идет небольшая утечка памяти.
Т.е. старые JLabel переживают gc. И в jconsole видно, что их всех держит buttonsPanel?
...
Рейтинг: 0 / 0
корректное освобождение памяти в java
    #39313901
Сергей Арсеньев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В смысле в VisualVM
...
Рейтинг: 0 / 0
корректное освобождение памяти в java
    #39313925
Mari.P
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может я неправа, но смотрю в диспетчере задач Windows процесс javaw.exe
при запуске программы этот процесс занимал в памяти 36 758 КБ,
а спустя день работы программы 50 874КБ
...
Рейтинг: 0 / 0
корректное освобождение памяти в java
    #39313941
Сергей Арсеньев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mari.P,

Это очень грубый инструмент. :)
У JVM свой менеджер памяти. И она не обязана отдавать захваченную память операционке.
Собственно отдавать память без особой на то необходимости - лишняя работа. Потом опять захватывай. :)
...
Рейтинг: 0 / 0
корректное освобождение памяти в java
    #39313949
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mari.P,

Запустите JDK/bin/jvisualvm.exe , подключитесь к вашему Java процессу. И научитесь пользоваться этой штуковиной. Пригодится.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / корректное освобождение памяти в java
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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