Результаты поиска по запросу "garbage-collection"

1 ответ

@berry .... да, но эти опции не гарантируют, что gc будет вызван. В конечном итоге это зависит только от JVM.

Как часто GC выполняется в JVM? Каждую секунду? Каждую минуту? Или это случайно в зависимости от объема памяти? Я просто хочу иметь идею. Спасибо.

6 ответов

Вы можете попробовать обернуть вашу форму в объект WeakReference, а затем проверить его свойство IsAlive, чтобы определить, был ли он собран мусором. Но, да ... в соответствии с другими ответами вам может быть лучше оставить его и доверить GC свою работу!

я есть пустой Winform с методом деструктора public partial class Form1 : Form { public Form1() { System.Diagnostics.Trace.WriteLine("Form1.Initialize " + this.GetHashCode().ToString()); InitializeComponent(); } ~Form1() ...

2 ответа

 и нет добытчиков для этого.

оложим, у вас есть ссылкиA -> B -> C -> D, Когда вы удаляете ссылку наB изAВы остались с осиротевшей цепочкой объектовB -> C -> D. БудетC а такжеD быть мусором, даже если нет возможности добраться до них (поскольку нет ссылки наB)? Я полагаю, ...

ТОП публикаций

3 ответа

 как считает нужным. Мы не должны.

орые из вас, вероятно, знают, что некоторые из основных API Java делают явные вызовы System.gc (). Я знаю два случая, когда это происходит: NIO. Я считаю, что это делается для того, чтобы выполнить некоторую очистку для прямых байтовых буферов, ...

7 ответов

, JVM внутренне контролирует сборку мусора, если обнаруживает, что ей не хватает памяти.

автоматически вызывает сборщик мусора, тогда зачем нам ручные вызовы для сборки мусора? Когда следует использоватьSystem.gc ()

1 ответ

Интересно, работает ли это на Dalvik / ART?

ой вариант использования. Мы пытаемся сузить потенциальную утечку памяти в приложении, и мы используем инструмент анализа памяти, чтобы сделать снимок кучи, чтобы мы могли искать экземпляры объектов и ссылки. (Если это поможет, мы используем ...

4 ответа

), особенно в разделе «Управляемая куча». Это должно ответить на ваши вопросы.

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

2 ответа

Действительно, фантомные ссылки автоматически очищаются сборщиком мусора, поскольку они ставятся в очередь в jdk 9 ...

жем видеть, что «фантомная досягаемость» так же недоступна, как и «недостижимая»:§ [http://download.oracle.com/javase/6/docs/api/java/lang/ref/package-summary.html#reachability] Объектфантом достижим если он не является ни сильно, ни мягко, ни ...

5 ответов

Доступен ли неиспользуемый объект для сборки мусора, когда он все еще виден в стеке?

В следующем примере есть два функционально эквивалентных метода: public class Question { public static String method1() { String s = new String("s1"); // some operations on s1 s = new String("s2"); return s; } public static String method2() { ...

11 ответов

Метод RAII использует эту функцию автоматического управления объектами для обработки объектов, созданных в куче / свободном хранилище, явно запрашивая дополнительную память, используя new / new [], которая должна быть явно уничтожена вызовом delete / delete [] , Класс автоматически управляемого объекта обернет этот другой объект, созданный в памяти heap / free-store. Следовательно, когда запускается конструктор автоматически управляемого объекта, обернутый объект создается в памяти кучи / свободного хранилища, а когда дескриптор автоматически управляемого объекта выходит из области видимости, автоматически вызывается деструктор этого автоматически управляемого объекта, в который переносится объект объект уничтожен с помощью delete. С концепциями ООП, если вы поместите такие объекты в другой класс в закрытой области видимости, у вас не будет доступа к обернутым классам-членам и методам, и это причина, по которой предназначены интеллектуальные указатели (иначе говоря, классы-дескрипторы). Эти интеллектуальные указатели представляют обернутый объект как типизированный объект для внешнего мира, позволяя вызывать любые элементы / методы, из которых состоит открытый объект памяти. Обратите внимание, что умные указатели имеют различные вкусы в зависимости от потребностей. Чтобы узнать больше об этом, вам следует обратиться к программированию на современном C ++ Андрея Александреску или повысить уровень реализации (документации) библиотеки (www.boostorg) shared_ptr.hpp. Надеюсь, это поможет вам понять RAII.

гли бы вы, разработчики C ++, дать нам хорошее описание того, что такое RAII, почему он важен и имеет ли он какое-либо отношение к другим языкам? I делать знаю немного. Я считаю, что это означает «Приобретение ресурсов - это инициализация». ...