Результаты поиска по запросу "garbage-collection"
@berry .... да, но эти опции не гарантируют, что gc будет вызван. В конечном итоге это зависит только от JVM.
Как часто GC выполняется в JVM? Каждую секунду? Каждую минуту? Или это случайно в зависимости от объема памяти? Я просто хочу иметь идею. Спасибо.
Вы можете попробовать обернуть вашу форму в объект WeakReference, а затем проверить его свойство IsAlive, чтобы определить, был ли он собран мусором. Но, да ... в соответствии с другими ответами вам может быть лучше оставить его и доверить GC свою работу!
я есть пустой Winform с методом деструктора public partial class Form1 : Form { public Form1() { System.Diagnostics.Trace.WriteLine("Form1.Initialize " + this.GetHashCode().ToString()); InitializeComponent(); } ~Form1() ...
и нет добытчиков для этого.
оложим, у вас есть ссылкиA -> B -> C -> D, Когда вы удаляете ссылку наB изAВы остались с осиротевшей цепочкой объектовB -> C -> D. БудетC а такжеD быть мусором, даже если нет возможности добраться до них (поскольку нет ссылки наB)? Я полагаю, ...
как считает нужным. Мы не должны.
орые из вас, вероятно, знают, что некоторые из основных API Java делают явные вызовы System.gc (). Я знаю два случая, когда это происходит: NIO. Я считаю, что это делается для того, чтобы выполнить некоторую очистку для прямых байтовых буферов, ...
, JVM внутренне контролирует сборку мусора, если обнаруживает, что ей не хватает памяти.
автоматически вызывает сборщик мусора, тогда зачем нам ручные вызовы для сборки мусора? Когда следует использоватьSystem.gc ()
Интересно, работает ли это на Dalvik / ART?
ой вариант использования. Мы пытаемся сузить потенциальную утечку памяти в приложении, и мы используем инструмент анализа памяти, чтобы сделать снимок кучи, чтобы мы могли искать экземпляры объектов и ссылки. (Если это поможет, мы используем ...
), особенно в разделе «Управляемая куча». Это должно ответить на ваши вопросы.
емя обсуждения с моим коллегой у меня возникло сомнение, что сборщик мусора в .net работает в масштабе всей системы или приложения. Означает ли это, что каждое приложение, имеющее собственный GC, будет влиять на производительность системы? Я ...
Действительно, фантомные ссылки автоматически очищаются сборщиком мусора, поскольку они ставятся в очередь в jdk 9 ...
жем видеть, что «фантомная досягаемость» так же недоступна, как и «недостижимая»:§ [http://download.oracle.com/javase/6/docs/api/java/lang/ref/package-summary.html#reachability] Объектфантом достижим если он не является ни сильно, ни мягко, ни ...
Доступен ли неиспользуемый объект для сборки мусора, когда он все еще виден в стеке?
В следующем примере есть два функционально эквивалентных метода: 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() { ...
Метод RAII использует эту функцию автоматического управления объектами для обработки объектов, созданных в куче / свободном хранилище, явно запрашивая дополнительную память, используя new / new [], которая должна быть явно уничтожена вызовом delete / delete [] , Класс автоматически управляемого объекта обернет этот другой объект, созданный в памяти heap / free-store. Следовательно, когда запускается конструктор автоматически управляемого объекта, обернутый объект создается в памяти кучи / свободного хранилища, а когда дескриптор автоматически управляемого объекта выходит из области видимости, автоматически вызывается деструктор этого автоматически управляемого объекта, в который переносится объект объект уничтожен с помощью delete. С концепциями ООП, если вы поместите такие объекты в другой класс в закрытой области видимости, у вас не будет доступа к обернутым классам-членам и методам, и это причина, по которой предназначены интеллектуальные указатели (иначе говоря, классы-дескрипторы). Эти интеллектуальные указатели представляют обернутый объект как типизированный объект для внешнего мира, позволяя вызывать любые элементы / методы, из которых состоит открытый объект памяти. Обратите внимание, что умные указатели имеют различные вкусы в зависимости от потребностей. Чтобы узнать больше об этом, вам следует обратиться к программированию на современном C ++ Андрея Александреску или повысить уровень реализации (документации) библиотеки (www.boostorg) shared_ptr.hpp. Надеюсь, это поможет вам понять RAII.
гли бы вы, разработчики C ++, дать нам хорошее описание того, что такое RAII, почему он важен и имеет ли он какое-либо отношение к другим языкам? I делать знаю немного. Я считаю, что это означает «Приобретение ресурсов - это инициализация». ...