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

2
Насколько отличается сборка мусора на чистых языках?
На чистом языке, таком как Haskell, все данные неизменны, и никакие существующие структуры данных не могут быть изменены каким-либо образом. Кроме того, многие алгоритмы неизменяемых данных и шаблоны функционального программирования по своей природе генерируют большое количество мусора (например, цепочки mapсоздания промежуточных списков). Какие стратегии и методы используют сборщики мусора перед …

6
Почему команда в LMAX использовала Java и проектировала архитектуру, чтобы любой ценой избежать GC?
Почему команда в LMAX разработала LMAX Disruptor в Java, но все их разработки сводятся к минимизации использования GC? Если кто-то не хочет запускать GC, зачем использовать язык сборки мусора? Их оптимизация, уровень знаний об оборудовании и мысли, которые они вкладывают, просто потрясающие, но почему Java? Я не против Java или …

9
Каковы сложности неуправляемого программирования памяти?
Или, другими словами, какие конкретные проблемы решает автоматизированная сборка мусора? Я никогда не занимался низкоуровневым программированием, поэтому не знаю, насколько сложным может стать освобождение ресурсов. Ошибки, которые устраняет GC, кажутся (по крайней мере, внешнему наблюдателю) вещами, которые программист, который хорошо знает свой язык, библиотеки, концепции, идиомы и т. Д., Не …

7
Демонстрация сборки мусора быстрее, чем ручное управление памятью
Я читал во многих местах (черт, я даже написал так себе) , что сбор мусора может (теоретически) быстрее , чем ручное управление памятью. Однако показать гораздо сложнее, чем рассказать. Я никогда не видел ни одного куска кода, который демонстрирует этот эффект в действии. Кто-нибудь есть (или знает, где я могу …

1
Когда сборщик мусора сжимает объекты в куче, он изменяет ссылки в стеке?
Это кажется простым вопросом, но после долгих чтений на эту тему я так и не нашел однозначного ответа (возможно, потому, что это так просто). У меня такой вопрос: когда сборщик мусора сжимает объекты в куче, как обновляются ссылки на эти объекты в стеке? Я могу придумать два возможных решения: Пройдите …

6
Как сборщик мусора предотвращает сканирование всей памяти при каждом сборе?
Некоторые (по крайней мере, Mono и .NET) сборщики мусора имеют область кратковременной памяти, которую они часто сканируют, и область вторичной памяти, которую они сканируют реже. Моно называет это детской. Чтобы выяснить, какие объекты могут быть удалены, они сканируют все объекты, начиная с корней, стека и регистров, и удаляют все объекты, …

4
Есть ли необходимость в сборке мусора в стековом языке?
Зачем нужна сборка мусора (GC) на языке стеков? Есть ли необходимость в сборке мусора на таких языках, как Forth или RPL (на калькуляторах HP )? Я бы подумал, поскольку вывод выводится из стека, в этом не будет необходимости. Я что-то пропустил?

3
Решит ли использование хеш-таблицы в сборщике мусора проблему мировой маркировки и очистки?
В алгоритме сборки мусора mark-sweep-compact вы должны останавливать мир при перемещении объектов, потому что ссылочный граф становится непоследовательным, и вы должны заменить значения всех ссылок, указывающих на объект. Но что если бы у вас была хеш-таблица с идентификатором объекта в качестве ключа и указателем в качестве значения, а ссылки указывали …

2
Поскольку сборщик мусора недетерминирован, почему он не используется для безопасной генерации случайных чисел?
Я понимаю, что / dev / random - хороший источник энтропии, и это то, что обычно используется. Как раз когда я читаю GC, по крайней мере в Java, кажется приемлемым, что демон сборки мусора выполняется недетерминированно , Если это правда, почему бы нам не использовать время сбора мусора в качестве …

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

5
Шаблон подсчета ссылок для языков с управлением памятью?
Java и .NET имеют замечательные сборщики мусора, которые управляют памятью, и удобные шаблоны для быстрого освобождения внешних объектов ( Closeable, IDisposable), но только если они принадлежат одному объекту. В некоторых системах ресурс может потребляться независимо двумя компонентами и освобождаться только тогда, когда оба компонента освобождают ресурс. В современном C ++ …

6
Должны ли Java-разработчики знать об алгоритмах сборки мусора? [закрыто]
Закрыто . Этот вопрос основан на мнении . В настоящее время он не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы ответить на него фактами и цитатами, отредактировав этот пост . Закрыто 4 года назад . Меня недавно спросили в интервью, знаю ли я о каких-либо алгоритмах сбора мусора. …

3
Почему мобильные платформы не поддерживают генерацию мусора?
В Windows Phone / Xbox и Android отсутствует поддержка сбора мусора поколений. Это расстраивает многих программистов. Кажется, есть законная техническая причина, но я не могу понять это. Текущие телефоны имеют больше памяти и, вероятно, лучшие процессоры, чем настольные компьютеры / ноутбуки, работающие на .NET 1.1 с поколением GC еще в …

4
Является ли недетерминированное управление ресурсами утечкой?
Из того, что я вижу, есть две распространенные формы управления ресурсами: детерминированное уничтожение и явное. Примерами первых могут быть деструкторы и интеллектуальные указатели C ++ или подпрограмма DESTROY в Perl, а вторым примером может служить парадигма Ruby «блоки для управления ресурсами» или интерфейс IDispose .NET. Более новые языки, кажется, выбирают …

4
Управление памятью для быстрой передачи сообщений между потоками в C ++
Предположим, есть два потока, которые взаимодействуют посредством асинхронной отправки сообщений данных друг другу. У каждого потока есть какая-то очередь сообщений. У меня очень низкий уровень вопроса: какой самый эффективный способ управления памятью? Я могу придумать несколько решений: Отправитель создает объект через new. Приемник звонков delete. Пул памяти (для передачи памяти …

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