|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
05.11.2013, 12:13 | #1 |
Форумчанин
Регистрация: 07.08.2011
Сообщений: 576
|
Освобождение памяти
Есть код что то в роде этого
Код:
Есть подозрения что при каждом новым вызовом f память от пред идущих вызовов не освобождается. Так ли это? Как я пришел к такому выводу? -После многочисленных вызовов метода f, программа падает. |
05.11.2013, 12:24 | #2 |
C/C++, Java
Участник клуба
Регистрация: 28.03.2012
Сообщений: 1,679
|
Вообще в Java очистка памяти происходит автоматически.
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости" Сложность - враг простоты и удобства! |
27.11.2013, 21:59 | #3 |
Форумчанин
Регистрация: 07.08.2011
Сообщений: 576
|
Я знаю. Тем не менее после нескольких вызовов метода f приложение падает.
А вот когда массив array объявлен внутри метода f , все работает нормально. Я забыл сказать это тестировалось на платформе Android 2.3.6. Но думаю это роли не играет, ибо как написано "принцип java -один код на разных устройствах", что то в этом роде. Скажите -есть ли возможность принудительно освободить память? Что бы самому контролировать процесс? Я привык быть хозяином этого процесса, как в С++, а не ждать пока машина java сделает это за меня. |
27.11.2013, 23:54 | #4 |
Новичок
Джуниор
Регистрация: 26.08.2008
Сообщений: 1,010
|
Если значение переменной (ссылка) не покидает метода (проверка идет на этапе JIT компиляции), то она попадает в скоп сгенерированной функции и мгновенно уничтожается по выходу из функции.
Что касаемо "нескольких" вызовов - тут вы преувеличили, я думаю речь идет о нескольких тысячах вызовов. Еще меня гложат сомнения что вы каждый раз вызываете метод f() над новым объектом, не обнуляя ссылки на старые. Основное, даже единственное, по настоящему работающее решение - оптимизировать алгоритм. Еще можно звать gc() почаще, но это уже не дает 100% гарантии.
ромик0: Cколько получают здешние модераторы?
pu4koff: У модераторов сдельная оплата труда. Выдал предупреждение - плюс к премии. Выдал бан - лучший модератор месяца со всеми вытекающими. |
28.11.2013, 00:27 | #5 |
Форумчанин
Регистрация: 07.08.2011
Сообщений: 576
|
Еще два вопроса
1 Код:
2 Можно ли узнать сколько программе выделяется памяти, в определенном месте? |
28.11.2013, 17:35 | #6 | |
Форумчанин
Регистрация: 25.09.2009
Сообщений: 234
|
Код:
Цитата:
|
|
29.11.2013, 11:46 | #7 |
Форумчанин
Регистрация: 07.08.2011
Сообщений: 576
|
Да код не совсем точный, там массив десятки мегобайт.
Но я все же хотел бы получить ответы на мои вопросы. |
26.01.2014, 21:24 | #8 | |
Форумчанин
Регистрация: 07.08.2011
Сообщений: 576
|
Цитата:
Код:
Последний раз редактировалось SAMOUCHKA; 26.01.2014 в 21:26. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
освобождение памяти | Homa_1983 | Общие вопросы C/C++ | 7 | 31.08.2013 14:36 |
Освобождение памяти | millepetrozza | Общие вопросы C/C++ | 4 | 27.10.2012 15:13 |
Освобождение памяти | Seran4ek | Общие вопросы Delphi | 7 | 21.12.2009 18:07 |
Освобождение памяти | AlexandrSid | Общие вопросы Delphi | 3 | 02.02.2009 13:45 |
Освобождение Памяти в Си | volotsky | Помощь студентам | 2 | 16.12.2008 22:36 |