Вопросы с тегом «garbage-collection»

Сборка мусора (GC) - это форма автоматического управления памятью, которая пытается вернуть мусор или память, занятую объектами, которые больше не используются программой.

1659
Правильное использование интерфейса IDisposable

Из документации Microsoft я знаю, что «основное» использование IDisposableинтерфейса - очистка неуправляемых ресурсов. Для меня «неуправляемый» означает такие вещи, как соединения с базой данных, сокеты, дескрипторы окон и т. Д. Но я видел код, в котором Dispose()метод реализован для освобождения...

805
Ошибка java.lang.OutOfMemoryError: превышен лимит накладных расходов GC

Я получаю это сообщение об ошибке при выполнении моих тестов JUnit: java.lang.OutOfMemoryError: GC overhead limit exceeded Я знаю, что OutOfMemoryErrorтакое, но что означает ограничение по накладным расходам GC? Как я могу решить...

594
Есть ли деструктор для Java?

Есть ли деструктор для Java? Кажется, я не могу найти никакой документации по этому вопросу. Если нет, как я могу достичь того же эффекта? Чтобы сделать мой вопрос более конкретным, я пишу приложение, которое работает с данными, и в спецификации говорится, что должна быть кнопка «сброс», которая...

435
Где находится Machine.Config?

Я хочу применить изменение, чтобы я мог использовать настройки Server GC для своего приложения C # 3.5 - я могу сделать это, отредактировав machine.configфайл. Единственная проблема - я не знаю, где это. Как я могу найти путь к этому файлу повторяемым образом на нескольких разных...

359
Удаление объектов в JavaScript

Я немного запутался с deleteоператором JavaScript . Возьмите следующий кусок кода: var obj = { helloText: "Hello World!" }; var foo = obj; delete obj; После того, как этот кусок кода был выполнен, objесть null, но fooвсе еще ссылается на объект в точности как obj. Я предполагаю, что этот объект -...

330
Когда метод finalize () вызывается в Java?

Мне нужно знать, когда finalize()метод вызывается в JVM. Я создал тестовый класс, который записывает в файл при finalize()вызове метода путем его переопределения. Это не выполнено. Кто-нибудь может сказать мне причину, почему это не...

326
Почему плохой практикой является вызов System.gc ()?

После ответа на вопрос о том, как принудительно освобождать объекты в Java (парень очищал HashMap 1,5 ГБ) System.gc(), мне сказали, что это плохая практика - вызывать System.gc()вручную, но комментарии не были полностью убедительными. Кроме того, никто, казалось, не осмеливался ни отрицать, ни...

318
Терминология кучи Java: молодое, старое и постоянное поколение?

Я пытаюсь понять, каковы понятия молодого , старого и постоянного поколений в терминологии кучи Java, и, в частности, взаимодействия между тремя поколениями. Мои вопросы: Что такое молодое поколение? Что такое старое поколение? Что такое постоянное поколение? Как три поколения взаимодействуют /...

270
Почему в C ++ нет сборщика мусора?

Я не задаю этот вопрос из-за достоинств сборки мусора в первую очередь. Моя главная причина, по которой я спрашиваю об этом, состоит в том, что я знаю, что Бьярн Страуструп сказал, что C ++ будет иметь сборщик мусора в определенный момент времени. С учетом сказанного, почему он не был добавлен? Уже...

206
Как работает новый механизм автоматического подсчета ссылок?

Может кто-нибудь кратко объяснить мне, как работает ARC? Я знаю, что это отличается от Сборки мусора, но мне просто интересно, как именно это работает. Кроме того, если ARC делает то, что делает GC, не снижая производительность, то почему Java использует GC? Почему он не использует...

183
Остановили ли обработчики событий сбор мусора?

Если у меня есть следующий код: MyClass pClass = new MyClass(); pClass.MyEvent += MyFunction; pClass = null; Будет ли pClass собирать мусор? Или он будет зависать, продолжая стрелять в события, когда они происходят? Нужно ли делать следующее, чтобы разрешить сборку мусора? MyClass pClass = new...

170
Понимание сборки мусора в .NET

Рассмотрим следующий код: public class Class1 { public static int c; ~Class1() { c++; } } public class Class2 { public static void Main() { { var c1=new Class1(); //c1=null; // If this line is not commented out, at the Console.WriteLine call, it prints 1. } GC.Collect();...

168
Как закрытия JavaScript убираются

Я зарегистрировал следующую ошибку Chrome , которая привела ко многим серьезным и неочевидным утечкам памяти в моем коде: (Эти результаты используют профилировщик памяти Chrome Dev Tools , который запускает GC, а затем делает кучу снимков всего, что не было собрано.) В приведенном ниже коде...

167
Как обработать: java.util.concurrent.TimeoutException: android.os.BinderProxy.finalize () истекло время ожидания после ошибок 10 секунд?

Мы видим число TimeoutExceptionsв GcWatcher.finalize, BinderProxy.finalizeи PlainSocketImpl.finalize. 90 +% из них происходят на Android 4.3. Мы получаем сообщения об этом от Crittercism от пользователей на местах. Ошибка является вариацией: "...

166
Когда можно позвонить в GC.Collect?

Общий совет, что вы не должны звонить GC.Collect из своего кода, но каковы исключения из этого правила? Я могу думать только о нескольких очень специфических случаях, когда имеет смысл форсировать сборку мусора. Один пример, который приходит на ум, - это служба, которая периодически просыпается,...