|
"C with Classes"
|
|
Сборщик мусора01.12.2019, 19:38. Показов 10288. Ответов 54
Метки нет (Все метки)
Наткнулся на такие строки и прошу пояснить, что значит.
Во многих языках управление ресурсами в основном делегируется сбор щику мусора. С++ также предлагает интерфейс сборки мусора, так что вы можете подключить сборщик мусора. In many languages, resource management is primarily delegated to a garbage collector. C++ also offers a garbage collection interface so that you can plug in a garbage collector На чем основывается этот интерфейс? И как его подключить. (это про сторонние библиотеки что ли?)
0
|
|
| 01.12.2019, 19:38 | |
|
Ответы с готовыми решениями:
54
Сборщик мусора задача не для новичков- сборщик мусора
|
|
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
|
||
| 01.12.2019, 23:32 | ||
|
Я вообще говоря ожидал что вместо этого полиморфный объект будет хранить виртуальный метод getMyAddress, через который и будет вытягиваться нужный аллокатору адрес Child*. А сам аллокатор будет не привязан к конкретному типу, а работать как обертка над malloc. Ну, второй пункт в polymorphic_allocator и правда сделали. А вот с первым затык.
0
|
||
|
Комп_Оратор)
|
|
| 01.12.2019, 23:46 | |
|
_stanislav, GC -шные библиотеки "одевают" всё. Начинается от new и заканчивается одетыми указателями. Это аналоги смартпойнтеров. Напиши свою реализацию упрощённо и поймёшь. Вот ссыль (я смотрел по диагонали - вроде похоже на правду).
https://www.codeproject.com/Ar... on-library Самый главный в С++ вопрос о GC звучит так: - А зачем (зачем - мягко сказано) тогда С++? (имхо). Когда ты напишешь систему поиска нужного объекта для удаления при выходе из области, - одну, вторую, третью, - поймёшь, - лучше на Жаве писать и не мучать ЖоЦэ.
1
|
|
|
"C with Classes"
|
|||
| 02.12.2019, 05:06 [ТС] | |||
|
0
|
|||
|
Комп_Оратор)
|
||||
| 02.12.2019, 10:59 | ||||
|
Добавлено через 12 минут Не по теме: зы это у всех такие тормоза с форумом или у меня только?
0
|
||||
|
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
|
|
| 02.12.2019, 11:25 | |
|
IGPIGP,
Так все дело в том что программист в случае стандартного gc "не одевает" указатель. Нет никаких обёрток. http://www.stroustrup.com/C++11FAQ.html#gc-abi По этой ссылке ничего подобного нет. Работа идёт по прежнему, только не думаем о delete (за то начинаем держать в голове правила работы с gc). Поэтому мне не понятно почему уже вторую страницу речь идёт про обёртки, в то время как тема о стандартном gc. Понимаю, сейчас зима, хочется одеться самому и одеть указатели, но указатели не мерзнут, можете не переживать
0
|
|
|
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
|
||
| 02.12.2019, 11:55 | ||
|
А, стоп, вот же ответ - "There is no standard way of saying which alternative you prefer. Considered that a "quality of implementation" and a "programming environment" issue. ". То ли цитату первого апреля писали, то ли снизу постучали.
1
|
||
|
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
|
|
| 02.12.2019, 12:50 | |
|
Renji,
Нормальному gc ничего сообщать обычно не нужно. На то он и gc, что бы отслеживать ресурсы без вмешательства программиста иначе от него скорее будет больше проблем чем пользы
0
|
|
|
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
|
||
| 02.12.2019, 13:04 | ||
|
0
|
||
|
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
|
|
| 02.12.2019, 13:11 | |
|
Renji,
Согласен, это должно быть без принуждений. Чтоб был вкл/выкл... А когда он вкл, что бы сам следил за ресурсами. Но думаю что все таки эта фича не для с++, даже с возможностью вкл/выкл
0
|
|
|
Комп_Оратор)
|
||
| 02.12.2019, 13:24 | ||
|
Добавлено через 12 минут Undisputed, вы читали текст по предложенной вами ссылке? Тогда обратите внимание на предложенную там БС ссылку на реализацию: https://dl.acm.org/citation.cf... 31.1542437
0
|
||
|
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
|
|
| 02.12.2019, 14:28 | |
|
IGPIGP,
В С++ я gc не пользовался. Но это никак не меняет сути gc. Не вижу кода по вашей ссылке. А на ФАГе Страуструпа код есть и указатели в нем не одетые.
0
|
|
|
Комп_Оратор)
|
||||||
| 02.12.2019, 14:44 | ||||||
|
Undisputed, ваш ответ содержит две несовместимые части. И не только в последнем посту. Но давайте с последнего начнём:
0
|
||||||
|
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
|
|
| 02.12.2019, 15:32 | |
|
IGPIGP,
Я читал текст по той ссылке. И по контексту я понял что сборщик должен уметь работать с указателем, полученным через new, то есть не одетым указателем. Если вы считаете что я где-то ошибся, то прошу укажите конкретно на ошибку. А то шума много, но ничего конкретного нет
0
|
|
|
Комп_Оратор)
|
|||
| 02.12.2019, 15:45 | |||
0
|
|||
|
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
|
|
| 02.12.2019, 15:55 | |
|
IGPIGP,
1) Где вы там увидели про базовый класс? 2) Указатель это не классовый тип и унаследовать функционал класса он не может
0
|
|
|
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
|
||
| 02.12.2019, 16:01 | ||
|
И не заведется оно на классах. Делаем сборщик мусора на основе подсчета ссылок, прям как в shared_ptr. Объект A ссылается на объект B, а объект B ссылается обратно на A. Где эти A и B лежат никто уже и не знает, но счетчик ссылок то не нулевой! Утечка памяти. Делаем сборщик мусора считающий достижимость объекта из указателя в локальных и глобальных переменных. А откуда умному указателю знать локальный он или в динамической памяти лежит? Особенно, если он в другой объект вложен. В рамках C++ затея получается еще более сомнительной.
1
|
||
|
Комп_Оратор)
|
||||
| 02.12.2019, 16:15 | ||||
|
Добавлено через 2 минуты
0
|
||||
|
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
|
|
| 02.12.2019, 16:16 | |
|
IGPIGP,
Отличаю. Так где там про базовый класс то написано?
0
|
|
|
"C with Classes"
|
|
| 02.12.2019, 17:01 [ТС] | |
|
Undisputed, я думаю ты правильно понял работу стандартного GC.
Добавлено через 13 секунд солидарен.
0
|
|
|
Комп_Оратор)
|
|
| 02.12.2019, 18:51 | |
|
0
|
|
| 02.12.2019, 18:51 | |
|
Очистка мусора Сборка мусора
Уборка мусора из double Как избавиться от записи мусора? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
10 сукцессия. Питон код войны грибов и растений
anaschu 27.06.2026
import numpy as np
class PlantAgent:
def __init__(self, name, strategy, initial_biomass):
self. name = name
self. strategy = strategy # "greedy" (широколиственные) или. . .
|
сукцессия 9. Математика подлости: как растения предали грибных друзей
anaschu 27.06.2026
Статья 2. Глобальная фосфорная война: эволюционно-экономические механизмы распределения биомов Земли
Введение: Экологический рынок как игра с нулевой суммой
Традиционная экология долгое время. . .
|
сукцессия 8. Как я спорил с ИИ, которые - агенты растений и ненавистники грибов!
anaschu 27.06.2026
Статья 1. Хроники грибного восстания: как Сократов диалог разрушил академические догмы ИИ
Введение: Синдром «цифрового учебника»
Современные большие языковые модели (LLM) обладают колоссальным. . .
|
Главный вопрос моделирования сукцессии
anaschu 27.06.2026
главный вопрос.
Если эктомикориза лучше добывает недоступный фосфор. И ее масса максимальна из всех.
А широколиственный лес тоже имеет самую крутую биомассу.
То почему не возникло их симбиоза? Это. . .
|
|
сукцессия 6. Питон реализация энилоджиковской модели, картинка про Центральную часть будущей модели
anaschu 26.06.2026
Етить. ИИ мне на основе моего старого файла R создал вот эту вот хмерь на пайтоне.
Это уже новая модель, модель сукцессии грибной.
потоки фосфора, азота. Углерода.
5 видов организмов.
Я даже. . .
|
Как замкнутый ядерный цикл решит проблему недостатки фосфора? Био миграция фосфора со дна океана
anaschu 26.06.2026
Биологический лифт: Концепция подъема фосфора со дна океана с помощью ЗЯТЦ
Предлагаю на обсуждение альтернативу тяжелому промышленному бурению океанического дна. Вместо сложной инженерии мы можем. . .
|
сукцессия 5
anaschu 26.06.2026
ПЛАН РАЗРАБОТКИ математической модели сукцессии микоризных систем
Переход AM → EcM (Endo + ErM) · Шумилов А. С. · ИФХиБПП РАН · Пущино · 2026
. . .
|
сукцессия 4
anaschu 25.06.2026
Более детализированный план разработки
План доработки модели динамики микоризных симбиозов (EcM с гистерезисом)
Цель: Реализовать логику переключения между эрикоидным (ErM) и эктомикоризным. . .
|