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

10
Когда стоит форсировать сборку мусора?
Итак, я читал вопрос о том, как заставить сборщик мусора в C # запускать, когда почти все ответы одинаковы: вы можете сделать это, но не должны - за исключением некоторых очень редких случаев . К сожалению, никто не уточняет, что такое такие случаи. Можете ли вы сказать мне, по какому …

6
Стек и куча памяти в Java
Насколько я понимаю, в Java стековая память содержит примитивы и вызовы методов, а кучевая память используется для хранения объектов. Предположим, у меня есть класс class A { int a ; String b; //getters and setters } Где будет храниться примитив aв классе A? Почему куча памяти вообще существует? Почему мы …

6
Как работает сборка мусора на языках, которые скомпилированы изначально?
После просмотра нескольких ответов о переполнении стека становится ясно, что некоторые скомпилированные в нативе языки имеют сборку мусора . Но мне неясно, как именно это будет работать. Я понимаю, как сборка мусора может работать с интерпретированным языком. Сборщик мусора будет просто работать рядом с интерпретатором и удалять неиспользуемые и недоступные …

11
Почему объекты Java не удаляются сразу после того, как на них больше нет ссылок?
В Java, как только у объекта больше нет ссылок, он становится пригодным для удаления, но JVM решает, когда объект фактически удален. Чтобы использовать терминологию Objective C, все ссылки на Java по своей природе являются "сильными". Однако в Objective-C, если у объекта больше нет сильных ссылок, объект немедленно удаляется. Почему это …

11
Зачем собирать мусор, если есть умные указатели
В наши дни так много языков собирают мусор. Это даже доступно для C ++ третьими лицами. Но в C ++ есть RAII и умные указатели. Так какой смысл использовать сборщик мусора? Это делает что-то дополнительное? И в других языках, таких как C #, если все ссылки обрабатываются как интеллектуальные указатели …

16
Почему в таких языках, как C и C ++, нет сборки мусора, а в Java - нет? [закрыто]
Ну, я знаю, что есть такие вещи, как malloc / free для C и new / using-a-destructor для управления памятью в C ++, но мне было интересно, почему нет «новых обновлений» для этих языков, которые позволяют пользователю есть возможность вручную управлять памятью, или чтобы система делала это автоматически (сборка мусора)? …

6
Когда использовать слабые ссылки в .Net?
Я лично не сталкивался с ситуацией, когда мне нужно было использовать тип WeakReference в .Net, но распространенное мнение, похоже, заключается в том, что его следует использовать в кэш-памяти. Доктор Джон Харроп привел очень хороший аргумент против использования WeakReferences в кешах в своем ответе на этот вопрос. Я также часто слышал, …

5
Почему умные указатели подсчета ссылок так популярны?
Как я вижу, умные указатели широко используются во многих реальных проектах C ++. Хотя некоторые интеллектуальные указатели, очевидно, полезны для поддержки RAII и передачи прав собственности, также существует тенденция использования общих указателей по умолчанию в качестве способа «сборки мусора» , так что программисту не нужно слишком много думать о распределении …

8
Что происходит с мусором в C ++?
У Java есть автоматический сборщик мусора, который время от времени останавливает мир, но заботится о мусоре в куче. Теперь приложения на C / C ++ не имеют таких зависаний STW, их использование памяти также не увеличивается бесконечно. Как достигается это поведение? Как ухаживать за мертвыми предметами?

7
Почему метод финализации включен в Java?
Согласно этому посту , мы никогда не должны полагаться на вызываемый метод finalize. Так почему же Java вообще включила его в язык программирования? Кажется ужасным решение включить в любой язык программирования функцию, которая может быть вызвана.

8
Недостатки управления памятью на основе областей
Мне действительно нравится управление памятью на основе области (SBMM) или RAII , так как на него чаще всего (сбивает с толку?) Ссылается сообщество C ++. Насколько я знаю, за исключением C ++ (и C), сегодня нет другого основного языка, который бы использовал SBMM / RAII в качестве основного механизма управления …

8
Переопределение Object.finalize () действительно плохо?
Основными двумя аргументами против переопределения Object.finalize()является то, что: Вы не можете решить, когда это называется. Это не может быть вызвано вообще. Если я правильно понимаю, я не думаю, что это достаточно веские причины, чтобы Object.finalize()так сильно ненавидеть . Именно реализация виртуальной машины и GC должны определить, когда подходящее время для …


3
За исключением сборщика мусора, что еще делает Java языком программирования не в реальном времени
Кроме сборщика мусора, какие еще функции в Java делают его неподходящим для программирования в реальном времени? В сети всякий раз, когда Java против C ++ обсуждается в отношении программирования в реальном времени, всегда упоминается сборщик мусора. Есть ли еще что-нибудь?

8
Почему сборщик мусора только подметает кучу?
По сути, я до сих пор узнал, что сборка мусора навсегда стирает любую структуру данных, на которую в данный момент не указывается. Но это только проверяет кучу для таких условий. Почему он также не проверяет раздел данных (глобальные переменные, константы и т. Д.) Или стек? Что такого в куче, что …

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.