![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
serghd |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 136 Регистрация: 5.10.2009 Репутация: нет Всего: нет |
Интересует удаление объектов из оперативной памяти (той, что выделена для jvm конечно), а именно в таком случае как если я создал, например, здоровый хеш-массив, пропарсил его и после этого он мне уже не нужен. Runtime.getRuntime().gc() не подходит в связи с трудоёмкостью (работает долго), да и "очистить" мне надо только один объект. Может будет срабатывать присвоение ему null или что можно ещё тут предпринять.
п.с. буду благодарен за любую информацию в виде проверенных веб-ресурсов касамо работы java с памятью в общем (когда срабатывает сборщик мусора, под какие объекты сколько её выделяется, как это рассчитать и т.п.). Это сообщение отредактировал(а) serghd - 2.2.2010, 16:25 |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Это обязательное условие чтобы GC смог его убрать. А вообще просто не парься, когда память подойдет к концу, JVM сама вызовет GC и удалит твой объект. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
afon |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 85 Регистрация: 5.4.2008 Где: Украина, Киев Репутация: нет Всего: 1 |
Так то оно так, только когда приходишь на собеседование, тут-то и выясняется, что ты понятия не имеешь как работает сборщик мусора ![]() |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Можно подумать что есть много народу за пределами Sun, которые на самом деле представляют как работает GC. И самое главное, кто вообще сказал, что это необходимое условие для написания хороших программ на Java. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
afon |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 85 Регистрация: 5.4.2008 Где: Украина, Киев Репутация: нет Всего: 1 |
>>И самое главное, кто вообще сказал, что это необходимое условие для написания хороших программ на Java.
Прямо никто не говорит. Я вообще так, разговор поддержать. |
|||
|
||||
serghd |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 136 Регистрация: 5.10.2009 Репутация: нет Всего: нет |
то есть gc его уберёт сразу же или "когда придёт время"? Это сообщение отредактировал(а) serghd - 4.2.2010, 18:15 |
||||
|
|||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Когда понадобится еще память. Собственно не вижу причин до этого момента беспокоиться о том, что он занимает память. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
Дрон |
|
|||
![]() Java-ненавистник :) ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3179 Регистрация: 29.12.2002 Где: Санкт-Петербург Репутация: 6 Всего: 93 |
Рассказать? ![]() Хотя я уже рассказывал. Имеем комп с 512 Мб физической памяти и java-программу, запущенную с -Xmx1024m. Так много необходимо потому, что один раз из ста может действительно понадобиться одновременно взять много памяти, но большую часть времени софтина прекрасно обходилась бы и сотней мегабайт. Да вот только как это сборщику мусора объяснить -- он иногда нормально память чистит, а иногда ждёт пока наберётся побольше. Пытался делать фоновый поток, который как-то анализирует использование памяти и принудительно вызывает сборщик мусора, но ничего вменяемого из этого не получилось. Правда я и времени на это уже много тратить не стал, смирившись с тем, что контролировать использование памяти невозможно. Ещё пытался крупные объекты запихивать в WeakReference, но и тут сборщик мусора устраивал подлянку, вычищая их при любом удобном случае, несмотря на то, что они были ещё нужны. Там есть какая-то возможность указать очередь, но я опять же не стал в ней разбираться. Это сообщение отредактировал(а) Дрон - 4.2.2010, 17:52 -------------------- Да. Именно так. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |