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

63
Почему компиляторы автоматически не вставляют освобождение?

Предполагается, что в таких языках, как C, программист вставляет вызовы бесплатно. Почему компилятор не делает это автоматически? Люди делают это в разумные сроки (игнорируя ошибки), поэтому это не невозможно. РЕДАКТИРОВАТЬ: Для дальнейшего использования, вот еще одна дискуссия, которая имеет...

38
Сборщики мусора поколений по своей природе дружественны кешу?

Типичный сборщик мусора поколений хранит недавно выделенные данные в отдельной области памяти. В типичных программах многие данные недолговечны, поэтому частый сбор молодого мусора (небольшой цикл GC) и нечастый сбор старого мусора - хороший компромисс между затратами памяти и временем,...

27
Почему парадигма деструктора объекта в языках с мусорным сбором повсеместно отсутствует?

Ищите понимание решений, связанных с языковым дизайном, собираемым мусором. Возможно, специалист по языку мог бы просветить меня? Я родом из C ++, так что эта область сбивает меня с толку. Кажется, что почти все современные языки со сборкой мусора с поддержкой объектов OOPy, такие как Ruby,...

23
Как сборщики мусора избегают переполнения стека?

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

12
Есть ли сборщики мусора, которые учитывают подкачку?

Сборщики мусора должны посещать все живые объекты, чтобы найти память, которую можно восстановить. (Наличие многих поколений просто задерживает это) При прочих равных, лучше сначала посетить объект, который уже выгружен в ОЗУ, прежде чем вставить другой блок в пейджинговый блок и, следовательно,...

12
Почему сборка мусора распространяется только на память, а не на другие типы ресурсов?

Кажется, что люди устали от ручного управления памятью, поэтому они изобрели сборку мусора, и жизнь была достаточно хорошей. Но как насчет других типов ресурсов? Файловые дескрипторы, сокеты или даже созданные пользователем данные, такие как соединения с базой данных? Это похоже на наивный вопрос,...

9
Является ли подсчет ссылок GC против трассировки GC свойством языка или свойством реализации?

Мы иногда слышим: «Swift не выполняет классическую (отслеживание) GC, он использует ARC». Но я не уверен, что в семантике Swift есть что-то, что требует подсчета ссылок. Кажется, что можно использовать собственный компилятор Swift и среду выполнения, чтобы использовать трассировку GC. Так что же...